From e9f410d1dbd2678bedcd746c7714b716a64e1356 Mon Sep 17 00:00:00 2001 From: Pat Hickey Date: Thu, 6 May 2021 16:25:12 -0700 Subject: [PATCH] run_in_dummy_executor isnt unsafe, its just a bad idea --- crates/wasi-common/tokio/src/lib.rs | 2 +- crates/wiggle/src/lib.rs | 2 +- crates/wiggle/wasmtime/macro/src/lib.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/wasi-common/tokio/src/lib.rs b/crates/wasi-common/tokio/src/lib.rs index 865b99445a..e7dc7f42e6 100644 --- a/crates/wasi-common/tokio/src/lib.rs +++ b/crates/wasi-common/tokio/src/lib.rs @@ -110,5 +110,5 @@ where Fut: Future>, T: Send + 'static, { - tokio::task::block_in_place(move || unsafe { wiggle::run_in_dummy_executor(f()) }) + tokio::task::block_in_place(move || wiggle::run_in_dummy_executor(f())) } diff --git a/crates/wiggle/src/lib.rs b/crates/wiggle/src/lib.rs index 602a8c9d17..f05a65cf5e 100644 --- a/crates/wiggle/src/lib.rs +++ b/crates/wiggle/src/lib.rs @@ -954,7 +954,7 @@ impl From for Trap { } } -pub unsafe fn run_in_dummy_executor(future: F) -> F::Output { +pub fn run_in_dummy_executor(future: F) -> F::Output { use std::pin::Pin; use std::task::{Context, Poll, RawWaker, RawWakerVTable, Waker}; diff --git a/crates/wiggle/wasmtime/macro/src/lib.rs b/crates/wiggle/wasmtime/macro/src/lib.rs index 67c91817c5..01f8a8db48 100644 --- a/crates/wiggle/wasmtime/macro/src/lib.rs +++ b/crates/wiggle/wasmtime/macro/src/lib.rs @@ -320,7 +320,7 @@ fn generate_func( let #name_ident = wasmtime::Func::wrap( store, move |caller: wasmtime::Caller #(, #arg_decls)*| -> Result<#ret_ty, wasmtime::Trap> { - unsafe { #rt::run_in_dummy_executor(Self::#fn_ident(&caller, &mut my_ctx.borrow_mut() #(, #arg_names)*)) } + #rt::run_in_dummy_executor(Self::#fn_ident(&caller, &mut my_ctx.borrow_mut() #(, #arg_names)*)) } ); }); @@ -372,7 +372,7 @@ fn generate_func( .store() .get::>>() .ok_or_else(|| wasmtime::Trap::new("context is missing in the store"))?; - unsafe { #rt::run_in_dummy_executor(Self::#fn_ident(&caller, &mut ctx.borrow_mut() #(, #arg_names)*)) } + #rt::run_in_dummy_executor(Self::#fn_ident(&caller, &mut ctx.borrow_mut() #(, #arg_names)*)) }, ); }