summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/tokio_util.rs10
-rw-r--r--runtime/web_worker.rs7
2 files changed, 12 insertions, 5 deletions
diff --git a/runtime/tokio_util.rs b/runtime/tokio_util.rs
index 7a6f4d49e..695b94802 100644
--- a/runtime/tokio_util.rs
+++ b/runtime/tokio_util.rs
@@ -13,3 +13,13 @@ pub fn create_basic_runtime() -> tokio::runtime::Runtime {
.build()
.unwrap()
}
+
+// TODO(ry) rename to run_local ?
+pub fn run_basic<F, R>(future: F) -> R
+where
+ F: std::future::Future<Output = R>,
+{
+ let rt = create_basic_runtime();
+ let local = tokio::task::LocalSet::new();
+ local.block_on(&rt, future)
+}
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs
index c70d20ffc..c7358bc74 100644
--- a/runtime/web_worker.rs
+++ b/runtime/web_worker.rs
@@ -4,7 +4,7 @@ use crate::inspector_server::InspectorServer;
use crate::js;
use crate::ops;
use crate::permissions::Permissions;
-use crate::tokio_util::create_basic_runtime;
+use crate::tokio_util::run_basic;
use crate::BootstrapOptions;
use deno_broadcast_channel::InMemoryBroadcastChannel;
use deno_core::error::AnyError;
@@ -545,8 +545,6 @@ pub fn run_web_worker(
) -> Result<(), AnyError> {
let name = worker.name.to_string();
- let rt = create_basic_runtime();
-
// TODO(bartlomieju): run following block using "select!"
// with terminate
@@ -587,6 +585,5 @@ pub fn run_web_worker(
debug!("Worker thread shuts down {}", &name);
result
};
-
- rt.block_on(fut)
+ run_basic(fut)
}