summaryrefslogtreecommitdiff
path: root/runtime/web_worker.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-11-27 00:09:04 +0100
committerGitHub <noreply@github.com>2023-11-26 23:09:04 +0000
commit550a24ad0e3c3e7a2e344079fe4e16b3ab7c170b (patch)
tree6ed5470f8084bff45e9a4d71a2742670faa6fa25 /runtime/web_worker.rs
parenta4ec7dfae01485290af91c62c1ce17a742dcb104 (diff)
refactor: use new poll methods from JsRuntime (#21302)
Diffstat (limited to 'runtime/web_worker.rs')
-rw-r--r--runtime/web_worker.rs23
1 files changed, 17 insertions, 6 deletions
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs
index 29b6aa370..9293fce17 100644
--- a/runtime/web_worker.rs
+++ b/runtime/web_worker.rs
@@ -33,6 +33,7 @@ use deno_core::ModuleId;
use deno_core::ModuleLoader;
use deno_core::ModuleSpecifier;
use deno_core::OpMetricsSummaryTracker;
+use deno_core::PollEventLoopOptions;
use deno_core::RuntimeOptions;
use deno_core::SharedArrayBufferStore;
use deno_core::Snapshot;
@@ -711,6 +712,11 @@ impl WebWorker {
id: ModuleId,
) -> Result<(), AnyError> {
let mut receiver = self.js_runtime.mod_evaluate(id);
+ let poll_options = PollEventLoopOptions {
+ wait_for_inspector: false,
+ ..Default::default()
+ };
+
tokio::select! {
biased;
@@ -722,7 +728,7 @@ impl WebWorker {
maybe_result.unwrap_or(Ok(()))
}
- event_loop_result = self.run_event_loop(false) => {
+ event_loop_result = self.run_event_loop(poll_options) => {
if self.internal_handle.is_terminated() {
return Ok(());
}
@@ -736,7 +742,7 @@ impl WebWorker {
fn poll_event_loop(
&mut self,
cx: &mut Context,
- wait_for_inspector: bool,
+ poll_options: PollEventLoopOptions,
) -> Poll<Result<(), AnyError>> {
// If awakened because we are terminating, just return Ok
if self.internal_handle.terminate_if_needed() {
@@ -745,7 +751,7 @@ impl WebWorker {
self.internal_handle.terminate_waker.register(cx.waker());
- match self.js_runtime.poll_event_loop(cx, wait_for_inspector) {
+ match self.js_runtime.poll_event_loop2(cx, poll_options) {
Poll::Ready(r) => {
// If js ended because we are terminating, just return Ok
if self.internal_handle.terminate_if_needed() {
@@ -773,9 +779,9 @@ impl WebWorker {
pub async fn run_event_loop(
&mut self,
- wait_for_inspector: bool,
+ poll_options: PollEventLoopOptions,
) -> Result<(), AnyError> {
- poll_fn(|cx| self.poll_event_loop(cx, wait_for_inspector)).await
+ poll_fn(|cx| self.poll_event_loop(cx, poll_options)).await
}
// Starts polling for messages from worker host from JavaScript.
@@ -851,7 +857,12 @@ pub fn run_web_worker(
}
let result = if result.is_ok() {
- worker.run_event_loop(true).await
+ worker
+ .run_event_loop(PollEventLoopOptions {
+ wait_for_inspector: true,
+ ..Default::default()
+ })
+ .await
} else {
result
};