summaryrefslogtreecommitdiff
path: root/cli/tools/repl/mod.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2021-12-11 15:56:45 +0100
committerGitHub <noreply@github.com>2021-12-11 15:56:45 +0100
commit0dec9b4381e0aa1d4b75ab5837cb75598f19c727 (patch)
tree960f9bd48c5b733317c5592d9843f315883413f8 /cli/tools/repl/mod.rs
parent13d7d5722771bf8c4de7083dc0f964dfffcb318a (diff)
fix: op_set_exit_code (#13034)
Fixes "op_set_exit_code" by sharing a single "Arc" between all workers (via "op state") instead of having a "global" value stored in "deno_runtime" crate. As a consequence setting an exit code is always scoped to a tree of workers, instead of being overridable if there are multiple worker tree (like in "deno test --jobs" subcommand). Refactored "cli/main.rs" functions to return "Result<i32, AnyError>" instead of "Result<(), AnyError>" so they can return exit code.
Diffstat (limited to 'cli/tools/repl/mod.rs')
-rw-r--r--cli/tools/repl/mod.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/cli/tools/repl/mod.rs b/cli/tools/repl/mod.rs
index 047b477cf..687e8a300 100644
--- a/cli/tools/repl/mod.rs
+++ b/cli/tools/repl/mod.rs
@@ -747,7 +747,7 @@ pub async fn run(
ps: &ProcState,
worker: MainWorker,
maybe_eval: Option<String>,
-) -> Result<(), AnyError> {
+) -> Result<i32, AnyError> {
let mut repl_session = ReplSession::initialize(worker).await?;
let mut rustyline_channel = rustyline_channel();
@@ -807,5 +807,5 @@ pub async fn run(
editor.save_history()?;
- Ok(())
+ Ok(repl_session.worker.get_exit_code())
}