summaryrefslogtreecommitdiff
path: root/runtime/ops/worker_host.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ops/worker_host.rs')
-rw-r--r--runtime/ops/worker_host.rs27
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);