summaryrefslogtreecommitdiff
path: root/runtime/web_worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/web_worker.rs')
-rw-r--r--runtime/web_worker.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs
index 0e3167041..014b3e738 100644
--- a/runtime/web_worker.rs
+++ b/runtime/web_worker.rs
@@ -119,6 +119,7 @@ pub struct WebWorkerInternalHandle {
has_terminated: Arc<AtomicBool>,
terminate_waker: Arc<AtomicWaker>,
isolate_handle: v8::IsolateHandle,
+ pub name: String,
pub worker_type: WebWorkerType,
}
@@ -264,6 +265,7 @@ impl WebWorkerHandle {
fn create_handles(
isolate_handle: v8::IsolateHandle,
+ name: String,
worker_type: WebWorkerType,
) -> (WebWorkerInternalHandle, SendableWebWorkerHandle) {
let (parent_port, worker_port) = create_entangled_message_port();
@@ -272,13 +274,14 @@ fn create_handles(
let has_terminated = Arc::new(AtomicBool::new(false));
let terminate_waker = Arc::new(AtomicWaker::new());
let internal_handle = WebWorkerInternalHandle {
- sender: ctrl_tx,
+ name,
port: Rc::new(parent_port),
termination_signal: termination_signal.clone(),
has_terminated: has_terminated.clone(),
terminate_waker: terminate_waker.clone(),
isolate_handle: isolate_handle.clone(),
cancel: CancelHandle::new_rc(),
+ sender: ctrl_tx,
worker_type,
};
let external_handle = SendableWebWorkerHandle {
@@ -452,7 +455,7 @@ impl WebWorker {
let (internal_handle, external_handle) = {
let handle = js_runtime.v8_isolate().thread_safe_handle();
let (internal_handle, external_handle) =
- create_handles(handle, options.worker_type);
+ create_handles(handle, name.clone(), options.worker_type);
let op_state = js_runtime.op_state();
let mut op_state = op_state.borrow_mut();
op_state.put(internal_handle.clone());