servo: Merge #12448 - Implement file reading task source (from jdm:file-reading-task-source-2); r=KiChjang

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
This commit is contained in:
Keith Yeung
2016-07-14 10:55:17 -07:00
parent 1a348eb9d5
commit 2043a8b864
14 changed files with 155 additions and 84 deletions

View File

@@ -8,10 +8,17 @@ pub mod history_traversal;
pub mod networking;
pub mod user_interaction;
use dom::window::Window;
use script_thread::Runnable;
use dom::bindings::global::GlobalRef;
use script_thread::{Runnable, RunnableWrapper};
use std::result::Result;
pub trait TaskSource {
fn queue<T: Runnable + Send + 'static>(&self, msg: Box<T>, window: &Window) -> Result<(), ()>;
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())
}
}