From de8c85f8f2f4631cc4e7cba2616df94fd2c37160 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 11 Jun 2019 14:35:03 -0400 Subject: [PATCH] Move Modules to ThreadSafeState (#2498) --- cli/main.rs | 3 ++- cli/state.rs | 4 ++++ cli/worker.rs | 4 +--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cli/main.rs b/cli/main.rs index 132bd7bc01..5976d42ba0 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -126,7 +126,8 @@ pub fn print_file_info( ); } - if let Some(deps) = worker.modules.lock().unwrap().deps(&out.module_name) + if let Some(deps) = + worker.state.modules.lock().unwrap().deps(&out.module_name) { println!("{}{}", ansi::bold("deps:\n".to_string()), deps.name); if let Some(ref depsdeps) = deps.deps { diff --git a/cli/state.rs b/cli/state.rs index 255a881441..07fb8189be 100644 --- a/cli/state.rs +++ b/cli/state.rs @@ -60,6 +60,7 @@ pub struct ThreadSafeState(Arc); #[cfg_attr(feature = "cargo-clippy", allow(stutter))] pub struct State { + pub modules: Arc>, pub main_module: Option, pub dir: deno_dir::DenoDir, pub argv: Vec, @@ -303,8 +304,11 @@ impl ThreadSafeState { seeded_rng = Some(Mutex::new(StdRng::seed_from_u64(seed))); }; + let modules = Arc::new(Mutex::new(deno::Modules::new())); + ThreadSafeState(Arc::new(State { main_module, + modules, dir, argv: argv_rest, permissions: DenoPermissions::from_flags(&flags), diff --git a/cli/worker.rs b/cli/worker.rs index 99470c2a7d..aff461a94f 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -19,7 +19,6 @@ use url::Url; #[derive(Clone)] pub struct Worker { inner: Arc>, - pub modules: Arc>, pub state: ThreadSafeState, } @@ -36,7 +35,6 @@ impl Worker { }); Self { inner: Arc::new(Mutex::new(deno::Isolate::new(startup_data, config))), - modules: Arc::new(Mutex::new(deno::Modules::new())), state, } } @@ -67,7 +65,7 @@ impl Worker { let worker_ = worker.clone(); let loader = self.state.clone(); let isolate = self.inner.clone(); - let modules = self.modules.clone(); + let modules = self.state.modules.clone(); let recursive_load = deno::RecursiveLoad::new(js_url.as_str(), loader, isolate, modules); recursive_load