From ba13b8e2a9efff13e4a7c0659bb2ed184cc4e683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 8 Jun 2022 17:45:38 +0200 Subject: refactor: ensure exit code reference is passed to all workers (#14814) --- runtime/ops/os.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'runtime/ops/os.rs') diff --git a/runtime/ops/os.rs b/runtime/ops/os.rs index 37da410ca..f138bae31 100644 --- a/runtime/ops/os.rs +++ b/runtime/ops/os.rs @@ -2,6 +2,7 @@ use super::utils::into_string; use crate::permissions::Permissions; +use crate::worker::ExitCode; use deno_core::error::{type_error, AnyError}; use deno_core::op; use deno_core::url::Url; @@ -10,11 +11,8 @@ use deno_core::OpState; use serde::Serialize; use std::collections::HashMap; use std::env; -use std::sync::atomic::AtomicI32; -use std::sync::atomic::Ordering::Relaxed; -use std::sync::Arc; -pub fn init(maybe_exit_code: Option>) -> Extension { +pub fn init(exit_code: ExitCode) -> Extension { Extension::builder() .ops(vec![ op_env::decl(), @@ -33,8 +31,7 @@ pub fn init(maybe_exit_code: Option>) -> Extension { op_system_memory_info::decl(), ]) .state(move |state| { - let exit_code = maybe_exit_code.clone().unwrap_or_default(); - state.put::>(exit_code); + state.put::(exit_code.clone()); Ok(()) }) .build() @@ -105,12 +102,12 @@ fn op_delete_env(state: &mut OpState, key: String) -> Result<(), AnyError> { #[op] fn op_set_exit_code(state: &mut OpState, code: i32) { - state.borrow_mut::>().store(code, Relaxed); + state.borrow_mut::().set(code); } #[op] fn op_exit(state: &mut OpState) { - let code = state.borrow::>().load(Relaxed); + let code = state.borrow::().get(); std::process::exit(code) } -- cgit v1.2.3