diff options
Diffstat (limited to 'runtime/ops/worker_host.rs')
-rw-r--r-- | runtime/ops/worker_host.rs | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs index 9bfbd9d10..002cc742a 100644 --- a/runtime/ops/worker_host.rs +++ b/runtime/ops/worker_host.rs @@ -13,7 +13,7 @@ use crate::web_worker::WorkerControlEvent; use crate::web_worker::WorkerId; use crate::worker::FormatJsErrorFn; use deno_core::error::AnyError; -use deno_core::op; +use deno_core::op2; use deno_core::serde::Deserialize; use deno_core::CancelFuture; use deno_core::CancelHandle; @@ -114,10 +114,11 @@ pub struct CreateWorkerArgs { } /// Create worker as the host -#[op] +#[op2] +#[serde] fn op_create_worker( state: &mut OpState, - args: CreateWorkerArgs, + #[serde] args: CreateWorkerArgs, ) -> Result<WorkerId, AnyError> { let specifier = args.specifier.clone(); let maybe_source_code = if args.has_source_code { @@ -221,8 +222,8 @@ fn op_create_worker( Ok(worker_id) } -#[op] -fn op_host_terminate_worker(state: &mut OpState, id: WorkerId) { +#[op2] +fn op_host_terminate_worker(state: &mut OpState, #[serde] id: WorkerId) { if let Some(worker_thread) = state.borrow_mut::<WorkersTable>().remove(&id) { worker_thread.terminate(); } else { @@ -271,10 +272,11 @@ fn close_channel( } /// Get control event from guest worker as host -#[op] +#[op2(async)] +#[serde] async fn op_host_recv_ctrl( state: Rc<RefCell<OpState>>, - id: WorkerId, + #[serde] id: WorkerId, ) -> Result<WorkerControlEvent, AnyError> { let (worker_handle, cancel_handle) = { let state = state.borrow(); @@ -313,10 +315,11 @@ async fn op_host_recv_ctrl( } } -#[op] +#[op2(async)] +#[serde] async fn op_host_recv_message( state: Rc<RefCell<OpState>>, - id: WorkerId, + #[serde] id: WorkerId, ) -> Result<Option<JsMessageData>, AnyError> { let (worker_handle, cancel_handle) = { let s = state.borrow(); @@ -351,11 +354,11 @@ async fn op_host_recv_message( } /// Post message to guest worker as host -#[op] +#[op2] fn op_host_post_message( state: &mut OpState, - id: WorkerId, - data: JsMessageData, + #[serde] id: WorkerId, + #[serde] data: JsMessageData, ) -> Result<(), AnyError> { if let Some(worker_thread) = state.borrow::<WorkersTable>().get(&id) { debug!("post message to worker {}", id); |