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 {
pub fn run_worker_scope(worker_url: Url,
resource_task: ResourceTask) -> ScriptChan {
let (receiver, sender) = ScriptChan::new();
let sender_clone = sender.clone();
resource_task: ResourceTask,
receiver: Receiver<ScriptMsg>,
sender: ScriptChan) {
TaskBuilder::new()
.native()
.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 sender = DedicatedWorkerGlobalScope::run_worker_scope(
worker_url, resource_task);
let (receiver, sender) = ScriptChan::new();
DedicatedWorkerGlobalScope::run_worker_scope(
worker_url, resource_task, receiver, sender.clone());
Ok(Worker::new(global, sender))
}
}