add mechanism to join on service- and dedicated-worker threads

This commit is contained in:
Gregory Terzian 2020-05-24 15:39:57 +08:00
parent d7d56454b0
commit ed688fe2c1
6 changed files with 63 additions and 18 deletions

View file

@ -87,7 +87,6 @@ impl Worker {
let (sender, receiver) = unbounded();
let closing = Arc::new(AtomicBool::new(false));
let worker = Worker::new(global, sender.clone(), closing.clone());
global.track_worker(closing.clone());
let worker_ref = Trusted::new(&*worker);
let worker_load_origin = WorkerScriptLoadOrigin {
@ -125,7 +124,7 @@ impl Worker {
let init = prepare_workerscope_init(global, Some(devtools_sender), Some(worker_id));
DedicatedWorkerGlobalScope::run_worker_scope(
let join_handle = DedicatedWorkerGlobalScope::run_worker_scope(
init,
worker_url,
devtools_receiver,
@ -136,12 +135,14 @@ impl Worker {
worker_load_origin,
String::from(&*worker_options.name),
worker_options.type_,
closing,
closing.clone(),
global.image_cache(),
browsing_context,
global.wgpu_id_hub(),
);
global.track_worker(closing, join_handle);
Ok(worker)
}