From 4f7c7fc808867d68ec15f172711a94af2b9a43ab Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Tue, 12 Aug 2014 11:10:33 +0200 Subject: [PATCH] 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. --- src/components/script/dom/dedicatedworkerglobalscope.rs | 7 +++---- src/components/script/dom/worker.rs | 5 +++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/script/dom/dedicatedworkerglobalscope.rs b/src/components/script/dom/dedicatedworkerglobalscope.rs index f9e3210715e..a3757bf3b0b 100644 --- a/src/components/script/dom/dedicatedworkerglobalscope.rs +++ b/src/components/script/dom/dedicatedworkerglobalscope.rs @@ -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, + sender: ScriptChan) { TaskBuilder::new() .native() .named(format!("Web Worker at {}", worker_url.serialize())) @@ -109,7 +109,6 @@ impl DedicatedWorkerGlobalScope { } } }); - return sender_clone; } } diff --git a/src/components/script/dom/worker.rs b/src/components/script/dom/worker.rs index 670ae7a5beb..5007f212f9a 100644 --- a/src/components/script/dom/worker.rs +++ b/src/components/script/dom/worker.rs @@ -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)) } }