Explicitly spawn a native task for workers.

This commit is contained in:
Ms2ger 2014-07-17 11:49:11 +02:00
parent c40ad756e6
commit 9524f8daa7
2 changed files with 7 additions and 3 deletions

View file

@ -15,7 +15,8 @@ use servo_net::resource_task::load_whole_resource;
use servo_util::str::DOMString; use servo_util::str::DOMString;
use servo_util::url::try_parse_url; use servo_util::url::try_parse_url;
use std::task::TaskBuilder; use native;
use rustrt::task::TaskOpts;
#[deriving(Encodable)] #[deriving(Encodable)]
pub struct Worker { pub struct Worker {
@ -42,9 +43,11 @@ impl Worker {
Err(_) => return Err(Syntax), Err(_) => return Err(Syntax),
}; };
let name = format!("Web Worker at {}", worker_url);
let resource_task = global.page().resource_task.deref().clone(); let resource_task = global.page().resource_task.deref().clone();
TaskBuilder::new().named(name).spawn(proc() {
let mut task_opts = TaskOpts::new();
task_opts.name = Some(format!("Web Worker at {}", worker_url).into_maybe_owned());
native::task::spawn_opts(task_opts, proc() {
let roots = RootCollection::new(); let roots = RootCollection::new();
let _stack_roots_tls = StackRootTLS::new(&roots); let _stack_roots_tls = StackRootTLS::new(&roots);

View file

@ -30,6 +30,7 @@ extern crate js;
extern crate libc; extern crate libc;
extern crate native; extern crate native;
extern crate net; extern crate net;
extern crate rustrt;
extern crate serialize; extern crate serialize;
extern crate time; extern crate time;
#[phase(plugin)] #[phase(plugin)]