forked from mirrors/gecko-dev
Implement the task source API for the File Reader task source, enabling using task sources from non-main threads. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix (partially) #7959 (github issue number if applicable). - [X] These changes do not require tests because they're refactoring existing code Source-Repo: https://github.com/servo/servo Source-Revision: 48a912f57ec51e55e7905983b2bf368a07a9902f
24 lines
888 B
Rust
24 lines
888 B
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
pub mod dom_manipulation;
|
|
pub mod file_reading;
|
|
pub mod history_traversal;
|
|
pub mod networking;
|
|
pub mod user_interaction;
|
|
|
|
use dom::bindings::global::GlobalRef;
|
|
use script_thread::{Runnable, RunnableWrapper};
|
|
use std::result::Result;
|
|
|
|
pub trait TaskSource {
|
|
fn queue_with_wrapper<T>(&self,
|
|
msg: Box<T>,
|
|
wrapper: &RunnableWrapper)
|
|
-> Result<(), ()>
|
|
where T: Runnable + Send + 'static;
|
|
fn queue<T: Runnable + Send + 'static>(&self, msg: Box<T>, global: GlobalRef) -> Result<(), ()> {
|
|
self.queue_with_wrapper(msg, &global.get_runnable_wrapper())
|
|
}
|
|
}
|