Skip to content

Commit 550a24a

Browse files
authored
refactor: use new poll methods from JsRuntime (#21302)
1 parent a4ec7df commit 550a24a

File tree

2 files changed

+31
-8
lines changed

2 files changed

+31
-8
lines changed

runtime/web_worker.rs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ use deno_core::ModuleId;
3333
use deno_core::ModuleLoader;
3434
use deno_core::ModuleSpecifier;
3535
use deno_core::OpMetricsSummaryTracker;
36+
use deno_core::PollEventLoopOptions;
3637
use deno_core::RuntimeOptions;
3738
use deno_core::SharedArrayBufferStore;
3839
use deno_core::Snapshot;
@@ -711,6 +712,11 @@ impl WebWorker {
711712
id: ModuleId,
712713
) -> Result<(), AnyError> {
713714
let mut receiver = self.js_runtime.mod_evaluate(id);
715+
let poll_options = PollEventLoopOptions {
716+
wait_for_inspector: false,
717+
..Default::default()
718+
};
719+
714720
tokio::select! {
715721
biased;
716722

@@ -722,7 +728,7 @@ impl WebWorker {
722728
maybe_result.unwrap_or(Ok(()))
723729
}
724730

725-
event_loop_result = self.run_event_loop(false) => {
731+
event_loop_result = self.run_event_loop(poll_options) => {
726732
if self.internal_handle.is_terminated() {
727733
return Ok(());
728734
}
@@ -736,7 +742,7 @@ impl WebWorker {
736742
fn poll_event_loop(
737743
&mut self,
738744
cx: &mut Context,
739-
wait_for_inspector: bool,
745+
poll_options: PollEventLoopOptions,
740746
) -> Poll<Result<(), AnyError>> {
741747
// If awakened because we are terminating, just return Ok
742748
if self.internal_handle.terminate_if_needed() {
@@ -745,7 +751,7 @@ impl WebWorker {
745751

746752
self.internal_handle.terminate_waker.register(cx.waker());
747753

748-
match self.js_runtime.poll_event_loop(cx, wait_for_inspector) {
754+
match self.js_runtime.poll_event_loop2(cx, poll_options) {
749755
Poll::Ready(r) => {
750756
// If js ended because we are terminating, just return Ok
751757
if self.internal_handle.terminate_if_needed() {
@@ -773,9 +779,9 @@ impl WebWorker {
773779

774780
pub async fn run_event_loop(
775781
&mut self,
776-
wait_for_inspector: bool,
782+
poll_options: PollEventLoopOptions,
777783
) -> Result<(), AnyError> {
778-
poll_fn(|cx| self.poll_event_loop(cx, wait_for_inspector)).await
784+
poll_fn(|cx| self.poll_event_loop(cx, poll_options)).await
779785
}
780786

781787
// Starts polling for messages from worker host from JavaScript.
@@ -851,7 +857,12 @@ pub fn run_web_worker(
851857
}
852858

853859
let result = if result.is_ok() {
854-
worker.run_event_loop(true).await
860+
worker
861+
.run_event_loop(PollEventLoopOptions {
862+
wait_for_inspector: true,
863+
..Default::default()
864+
})
865+
.await
855866
} else {
856867
result
857868
};

runtime/worker.rs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -603,14 +603,26 @@ impl MainWorker {
603603
cx: &mut Context,
604604
wait_for_inspector: bool,
605605
) -> Poll<Result<(), AnyError>> {
606-
self.js_runtime.poll_event_loop(cx, wait_for_inspector)
606+
self.js_runtime.poll_event_loop2(
607+
cx,
608+
deno_core::PollEventLoopOptions {
609+
wait_for_inspector,
610+
..Default::default()
611+
},
612+
)
607613
}
608614

609615
pub async fn run_event_loop(
610616
&mut self,
611617
wait_for_inspector: bool,
612618
) -> Result<(), AnyError> {
613-
self.js_runtime.run_event_loop(wait_for_inspector).await
619+
self
620+
.js_runtime
621+
.run_event_loop2(deno_core::PollEventLoopOptions {
622+
wait_for_inspector,
623+
..Default::default()
624+
})
625+
.await
614626
}
615627

616628
/// Return exit code set by the executed code (either in main worker

0 commit comments

Comments
 (0)