From db2cc413ff1b8353d322ea156ea972aed8788181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=83=A5=EB=83=90=EC=B1=A0?= Date: Mon, 30 Sep 2024 10:06:14 +0900 Subject: [PATCH] fix(base): partial revert some changes that were introduced from deno upgrade PR (#415) --- crates/base/src/deno_runtime.rs | 71 +++++++++++++++++---------------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/crates/base/src/deno_runtime.rs b/crates/base/src/deno_runtime.rs index 2de87f52..4428d9b2 100644 --- a/crates/base/src/deno_runtime.rs +++ b/crates/base/src/deno_runtime.rs @@ -43,7 +43,6 @@ use std::time::Duration; use tokio::sync::mpsc; use tokio::time::interval; use tokio_util::sync::CancellationToken; -use tracing::debug; use crate::snapshot; use event_worker::events::{EventMetadata, WorkerEventWithMetadata}; @@ -703,7 +702,7 @@ where let mut accumulated_cpu_time_ns = 0i64; let has_inspector = self.inspector().is_some(); - let mut mod_result_rx = unsafe { + let mod_result_rx = unsafe { self.js_runtime.v8_isolate().enter(); if has_inspector { @@ -751,38 +750,38 @@ where }; } - { - let event_loop_fut = self.run_event_loop( - name.as_deref(), - current_thread_id, - &maybe_cpu_usage_metrics_tx, - &mut accumulated_cpu_time_ns, - ); - - let mod_result = tokio::select! { - // Not using biased mode leads to non-determinism for relatively simple - // programs. - biased; - - maybe_mod_result = &mut mod_result_rx => { - debug!("received module evaluate {:#?}", maybe_mod_result); - maybe_mod_result - - } - - event_loop_result = event_loop_fut => { - if let Err(err) = event_loop_result { - Err(anyhow!("event loop error while evaluating the module: {}", err)) - } else { - mod_result_rx.await - } - } - }; - - if let Err(err) = mod_result { - return (Err(err), get_accumulated_cpu_time_ms!()); - } - } + // { + // let event_loop_fut = self.run_event_loop( + // name.as_deref(), + // current_thread_id, + // &maybe_cpu_usage_metrics_tx, + // &mut accumulated_cpu_time_ns, + // ); + + // let mod_result = tokio::select! { + // // Not using biased mode leads to non-determinism for relatively simple + // // programs. + // biased; + + // maybe_mod_result = &mut mod_result_rx => { + // debug!("received module evaluate {:#?}", maybe_mod_result); + // maybe_mod_result + + // } + + // event_loop_result = event_loop_fut => { + // if let Err(err) = event_loop_result { + // Err(anyhow!("event loop error while evaluating the module: {}", err)) + // } else { + // mod_result_rx.await + // } + // } + // }; + + // if let Err(err) = mod_result { + // return (Err(err), get_accumulated_cpu_time_ms!()); + // } + // } if let Err(err) = self .run_event_loop( @@ -799,6 +798,10 @@ where ); } + if let Err(err) = mod_result_rx.await { + return (Err(err), get_accumulated_cpu_time_ms!()); + } + (Ok(()), get_accumulated_cpu_time_ms!()) }