Pass the script channel to DedicatedWorkerGlobalScope::run_worker_scope rather than creating it there.

This allows us to create the Worker object before calling
DedicatedWorkerGlobalScope::run_worker_scope, which is necessary to pass a
pointer to the worker to it.
This commit is contained in:
Ms2ger 2014-08-12 11:10:33 +02:00
parent d9105ca9b4
commit 4f7c7fc808
2 changed files with 6 additions and 6 deletions

View file

@ -62,9 +62,9 @@ impl DedicatedWorkerGlobalScope {
impl DedicatedWorkerGlobalScope { impl DedicatedWorkerGlobalScope {
pub fn run_worker_scope(worker_url: Url, pub fn run_worker_scope(worker_url: Url,
resource_task: ResourceTask) -> ScriptChan { resource_task: ResourceTask,
let (receiver, sender) = ScriptChan::new(); receiver: Receiver<ScriptMsg>,
let sender_clone = sender.clone(); sender: ScriptChan) {
TaskBuilder::new() TaskBuilder::new()
.native() .native()
.named(format!("Web Worker at {}", worker_url.serialize())) .named(format!("Web Worker at {}", worker_url.serialize()))
@ -109,7 +109,6 @@ impl DedicatedWorkerGlobalScope {
} }
} }
}); });
return sender_clone;
} }
} }

View file

@ -45,8 +45,9 @@ impl Worker {
}; };
let resource_task = global.resource_task(); let resource_task = global.resource_task();
let sender = DedicatedWorkerGlobalScope::run_worker_scope( let (receiver, sender) = ScriptChan::new();
worker_url, resource_task); DedicatedWorkerGlobalScope::run_worker_scope(
worker_url, resource_task, receiver, sender.clone());
Ok(Worker::new(global, sender)) Ok(Worker::new(global, sender))
} }
} }