mirror of
https://github.com/servo/servo.git
synced 2025-07-31 19:20:22 +01:00
Stop reference-counting Runtime for workers.
This commit is contained in:
parent
c4e112a3be
commit
aeab05cd6e
2 changed files with 10 additions and 10 deletions
|
@ -32,7 +32,6 @@ use script_thread::ScriptThreadEventCategory::WorkerEvent;
|
||||||
use script_thread::{ScriptThread, ScriptChan, ScriptPort, StackRootTLS, CommonScriptMsg};
|
use script_thread::{ScriptThread, ScriptChan, ScriptPort, StackRootTLS, CommonScriptMsg};
|
||||||
use script_traits::{TimerEvent, TimerSource};
|
use script_traits::{TimerEvent, TimerSource};
|
||||||
use std::mem::replace;
|
use std::mem::replace;
|
||||||
use std::rc::Rc;
|
|
||||||
use std::sync::mpsc::{Receiver, RecvError, Select, Sender, channel};
|
use std::sync::mpsc::{Receiver, RecvError, Select, Sender, channel};
|
||||||
use url::Url;
|
use url::Url;
|
||||||
use util::str::DOMString;
|
use util::str::DOMString;
|
||||||
|
@ -158,7 +157,7 @@ impl DedicatedWorkerGlobalScope {
|
||||||
worker_url: Url,
|
worker_url: Url,
|
||||||
id: PipelineId,
|
id: PipelineId,
|
||||||
from_devtools_receiver: Receiver<DevtoolScriptControlMsg>,
|
from_devtools_receiver: Receiver<DevtoolScriptControlMsg>,
|
||||||
runtime: Rc<Runtime>,
|
runtime: Runtime,
|
||||||
parent_sender: Box<ScriptChan + Send>,
|
parent_sender: Box<ScriptChan + Send>,
|
||||||
own_sender: Sender<(TrustedWorkerAddress, WorkerScriptMsg)>,
|
own_sender: Sender<(TrustedWorkerAddress, WorkerScriptMsg)>,
|
||||||
receiver: Receiver<(TrustedWorkerAddress, WorkerScriptMsg)>,
|
receiver: Receiver<(TrustedWorkerAddress, WorkerScriptMsg)>,
|
||||||
|
@ -185,24 +184,25 @@ impl DedicatedWorkerGlobalScope {
|
||||||
worker_url: Url,
|
worker_url: Url,
|
||||||
id: PipelineId,
|
id: PipelineId,
|
||||||
from_devtools_receiver: Receiver<DevtoolScriptControlMsg>,
|
from_devtools_receiver: Receiver<DevtoolScriptControlMsg>,
|
||||||
runtime: Rc<Runtime>,
|
runtime: Runtime,
|
||||||
parent_sender: Box<ScriptChan + Send>,
|
parent_sender: Box<ScriptChan + Send>,
|
||||||
own_sender: Sender<(TrustedWorkerAddress, WorkerScriptMsg)>,
|
own_sender: Sender<(TrustedWorkerAddress, WorkerScriptMsg)>,
|
||||||
receiver: Receiver<(TrustedWorkerAddress, WorkerScriptMsg)>,
|
receiver: Receiver<(TrustedWorkerAddress, WorkerScriptMsg)>,
|
||||||
timer_event_chan: IpcSender<TimerEvent>,
|
timer_event_chan: IpcSender<TimerEvent>,
|
||||||
timer_event_port: Receiver<(TrustedWorkerAddress, TimerEvent)>)
|
timer_event_port: Receiver<(TrustedWorkerAddress, TimerEvent)>)
|
||||||
-> Root<DedicatedWorkerGlobalScope> {
|
-> Root<DedicatedWorkerGlobalScope> {
|
||||||
|
let cx = runtime.cx();
|
||||||
let scope = box DedicatedWorkerGlobalScope::new_inherited(init,
|
let scope = box DedicatedWorkerGlobalScope::new_inherited(init,
|
||||||
worker_url,
|
worker_url,
|
||||||
id,
|
id,
|
||||||
from_devtools_receiver,
|
from_devtools_receiver,
|
||||||
runtime.clone(),
|
runtime,
|
||||||
parent_sender,
|
parent_sender,
|
||||||
own_sender,
|
own_sender,
|
||||||
receiver,
|
receiver,
|
||||||
timer_event_chan,
|
timer_event_chan,
|
||||||
timer_event_port);
|
timer_event_port);
|
||||||
DedicatedWorkerGlobalScopeBinding::Wrap(runtime.cx(), scope)
|
DedicatedWorkerGlobalScopeBinding::Wrap(cx, scope)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run_worker_scope(init: WorkerGlobalScopeInit,
|
pub fn run_worker_scope(init: WorkerGlobalScopeInit,
|
||||||
|
@ -235,7 +235,7 @@ impl DedicatedWorkerGlobalScope {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let runtime = Rc::new(ScriptThread::new_rt_and_cx());
|
let runtime = ScriptThread::new_rt_and_cx();
|
||||||
|
|
||||||
let (devtools_mpsc_chan, devtools_mpsc_port) = channel();
|
let (devtools_mpsc_chan, devtools_mpsc_port) = channel();
|
||||||
ROUTER.route_ipc_receiver_to_mpsc_sender(from_devtools_receiver, devtools_mpsc_chan);
|
ROUTER.route_ipc_receiver_to_mpsc_sender(from_devtools_receiver, devtools_mpsc_chan);
|
||||||
|
@ -249,7 +249,7 @@ impl DedicatedWorkerGlobalScope {
|
||||||
});
|
});
|
||||||
|
|
||||||
let global = DedicatedWorkerGlobalScope::new(
|
let global = DedicatedWorkerGlobalScope::new(
|
||||||
init, url, id, devtools_mpsc_port, runtime.clone(),
|
init, url, id, devtools_mpsc_port, runtime,
|
||||||
parent_sender.clone(), own_sender, receiver,
|
parent_sender.clone(), own_sender, receiver,
|
||||||
timer_ipc_chan, timer_rx);
|
timer_ipc_chan, timer_rx);
|
||||||
// FIXME(njn): workers currently don't have a unique ID suitable for using in reporter
|
// FIXME(njn): workers currently don't have a unique ID suitable for using in reporter
|
||||||
|
|
|
@ -55,8 +55,8 @@ pub struct WorkerGlobalScope {
|
||||||
eventtarget: EventTarget,
|
eventtarget: EventTarget,
|
||||||
worker_id: WorkerId,
|
worker_id: WorkerId,
|
||||||
worker_url: Url,
|
worker_url: Url,
|
||||||
#[ignore_heap_size_of = "Defined in std"]
|
#[ignore_heap_size_of = "Defined in js"]
|
||||||
runtime: Rc<Runtime>,
|
runtime: Runtime,
|
||||||
next_worker_id: Cell<WorkerId>,
|
next_worker_id: Cell<WorkerId>,
|
||||||
#[ignore_heap_size_of = "Defined in std"]
|
#[ignore_heap_size_of = "Defined in std"]
|
||||||
resource_thread: ResourceThread,
|
resource_thread: ResourceThread,
|
||||||
|
@ -94,7 +94,7 @@ pub struct WorkerGlobalScope {
|
||||||
impl WorkerGlobalScope {
|
impl WorkerGlobalScope {
|
||||||
pub fn new_inherited(init: WorkerGlobalScopeInit,
|
pub fn new_inherited(init: WorkerGlobalScopeInit,
|
||||||
worker_url: Url,
|
worker_url: Url,
|
||||||
runtime: Rc<Runtime>,
|
runtime: Runtime,
|
||||||
from_devtools_receiver: Receiver<DevtoolScriptControlMsg>,
|
from_devtools_receiver: Receiver<DevtoolScriptControlMsg>,
|
||||||
timer_event_chan: IpcSender<TimerEvent>)
|
timer_event_chan: IpcSender<TimerEvent>)
|
||||||
-> WorkerGlobalScope {
|
-> WorkerGlobalScope {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue