Generalize promise job queue into solitary microtask queue.

This commit is contained in:
Josh Matthews 2017-01-12 12:39:05 -05:00
parent bac2f68b54
commit 32d4f84a30
8 changed files with 137 additions and 144 deletions

View file

@ -230,17 +230,23 @@ impl DedicatedWorkerGlobalScope {
}
{
let _ar = AutoWorkerReset::new(&global, worker);
let _ar = AutoWorkerReset::new(&global, worker.clone());
scope.execute_script(DOMString::from(source));
}
let reporter_name = format!("dedicated-worker-reporter-{}", random::<u64>());
scope.upcast::<GlobalScope>().mem_profiler_chan().run_with_memory_reporting(|| {
// https://html.spec.whatwg.org/multipage/#event-loop-processing-model
// Step 1
while let Ok(event) = global.receive_event() {
if scope.is_closing() {
break;
}
// Step 3
global.handle_event(event);
// Step 6
let _ar = AutoWorkerReset::new(&global, worker.clone());
global.upcast::<WorkerGlobalScope>().perform_a_microtask_checkpoint();
}
}, reporter_name, parent_sender, CommonScriptMsg::CollectReports);
}).expect("Thread spawning failed");