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.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs
index 424e7a70c..6891241dd 100644
--- a/runtime/ops/worker_host.rs
+++ b/runtime/ops/worker_host.rs
@@ -14,6 +14,7 @@ use crate::web_worker::WebWorkerHandle;
use crate::web_worker::WorkerEvent;
use deno_core::error::custom_error;
use deno_core::error::generic_error;
+use deno_core::error::null_opbuf;
use deno_core::error::AnyError;
use deno_core::error::JsError;
use deno_core::futures::channel::mpsc;
@@ -23,7 +24,6 @@ use deno_core::serde::Deserialize;
use deno_core::serde::Deserializer;
use deno_core::serde_json::json;
use deno_core::serde_json::Value;
-use deno_core::BufVec;
use deno_core::ModuleSpecifier;
use deno_core::OpState;
use deno_core::ZeroCopyBuf;
@@ -369,7 +369,7 @@ pub struct CreateWorkerArgs {
fn op_create_worker(
state: &mut OpState,
args: CreateWorkerArgs,
- _data: &mut [ZeroCopyBuf],
+ _data: Option<ZeroCopyBuf>,
) -> Result<Value, AnyError> {
let specifier = args.specifier.clone();
let maybe_source_code = if args.has_source_code {
@@ -457,7 +457,7 @@ pub struct WorkerArgs {
fn op_host_terminate_worker(
state: &mut OpState,
args: WorkerArgs,
- _data: &mut [ZeroCopyBuf],
+ _data: Option<ZeroCopyBuf>,
) -> Result<Value, AnyError> {
let id = args.id as u32;
let worker_thread = state
@@ -533,7 +533,7 @@ fn try_remove_and_close(state: Rc<RefCell<OpState>>, id: u32) {
async fn op_host_get_message(
state: Rc<RefCell<OpState>>,
args: WorkerArgs,
- _zero_copy: BufVec,
+ _zero_copy: Option<ZeroCopyBuf>,
) -> Result<Value, AnyError> {
let id = args.id as u32;
@@ -567,11 +567,11 @@ async fn op_host_get_message(
fn op_host_post_message(
state: &mut OpState,
args: WorkerArgs,
- data: &mut [ZeroCopyBuf],
+ data: Option<ZeroCopyBuf>,
) -> Result<Value, AnyError> {
- assert_eq!(data.len(), 1, "Invalid number of arguments");
+ let data = data.ok_or_else(null_opbuf)?;
let id = args.id as u32;
- let msg = Vec::from(&*data[0]).into_boxed_slice();
+ let msg = Vec::from(&*data).into_boxed_slice();
debug!("post message to worker {}", id);
let worker_thread = state