From c4d0fceec37e3842fad4aeb5afb0dfac4353390d Mon Sep 17 00:00:00 2001 From: Matt Mastracci Date: Tue, 16 Apr 2024 12:54:50 -0600 Subject: fix(cli): TestEventSender should be !Clone (#23405) `TestEventSender` should not be Clone so we don't end up with multiple copies of the same writer FD. This is probably not the cause of the test channel lockups, but it's a lot easier to reason about. --- cli/tools/repl/session.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'cli/tools/repl/session.rs') diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index e5f70df15..840d85822 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -12,10 +12,10 @@ use crate::tools::test::report_tests; use crate::tools::test::reporters::PrettyTestReporter; use crate::tools::test::reporters::TestReporter; use crate::tools::test::run_tests_for_worker; +use crate::tools::test::send_test_event; use crate::tools::test::worker_has_tests; use crate::tools::test::TestEvent; use crate::tools::test::TestEventReceiver; -use crate::tools::test::TestEventSender; use deno_ast::diagnostics::Diagnostic; use deno_ast::swc::ast as swc_ast; @@ -184,7 +184,6 @@ pub struct ReplSession { referrer: ModuleSpecifier, main_module: ModuleSpecifier, test_reporter_factory: Box Box>, - test_event_sender: TestEventSender, /// This is only optional because it's temporarily taken when evaluating. test_event_receiver: Option, jsx: ReplJsxState, @@ -198,7 +197,6 @@ impl ReplSession { resolver: Arc, mut worker: MainWorker, main_module: ModuleSpecifier, - test_event_sender: TestEventSender, test_event_receiver: TestEventReceiver, ) -> Result { let language_server = ReplLanguageServer::new_initialized().await?; @@ -278,7 +276,6 @@ impl ReplSession { )) }), main_module, - test_event_sender, test_event_receiver: Some(test_event_receiver), jsx: ReplJsxState { factory: "React.createElement".to_string(), @@ -466,10 +463,11 @@ impl ReplSession { ) .await .unwrap(); - self - .test_event_sender - .send(TestEvent::ForceEndReport) - .unwrap(); + send_test_event( + &self.worker.js_runtime.op_state(), + TestEvent::ForceEndReport, + ) + .unwrap(); self.test_event_receiver = Some(report_tests_handle.await.unwrap().1); } -- cgit v1.2.3