aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-08-12 11:10:33 +0200
committerMs2ger <ms2ger@gmail.com>2014-08-12 17:47:17 +0200
commit4f7c7fc808867d68ec15f172711a94af2b9a43ab (patch)
tree440b1280e7175b95636e3757a448dce44b94fb9b /src/components/script/dom
parentd9105ca9b461b01590ca792229c8380a75ee3fb4 (diff)
downloadservo-4f7c7fc808867d68ec15f172711a94af2b9a43ab.tar.gz
servo-4f7c7fc808867d68ec15f172711a94af2b9a43ab.zip
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.
Diffstat (limited to 'src/components/script/dom')
-rw-r--r--src/components/script/dom/dedicatedworkerglobalscope.rs7
-rw-r--r--src/components/script/dom/worker.rs5
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<ScriptMsg>,
+ 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))
}
}