From 3e7c7350888699e6ba50480ab12901b214154d46 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Tue, 18 Feb 2025 11:22:17 +0800 Subject: [PATCH] . --- os/src/ProcessOps.scala | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/os/src/ProcessOps.scala b/os/src/ProcessOps.scala index fb9c4d13..56087f95 100644 --- a/os/src/ProcessOps.scala +++ b/os/src/ProcessOps.scala @@ -71,7 +71,7 @@ object call { check = check, propagateEnv = propagateEnv, shutdownGracePeriod = timeoutGracePeriod, - destroyOnExit = false + destroyOnExit = true ) } } @@ -130,7 +130,7 @@ object spawn { mergeErrIntoOut = mergeErrIntoOut, propagateEnv = propagateEnv, shutdownGracePeriod = 100, - destroyOnExit = false + destroyOnExit = true ) } } @@ -279,7 +279,7 @@ case class proc(command: Shellable*) { check, propagateEnv, timeoutGracePeriod, - destroyOnExit = false + destroyOnExit = true ) /** @@ -323,10 +323,16 @@ case class proc(command: Shellable*) { propagateEnv ) + println("destroyOnExit " + destroyOnExit) + println("command.value " + command.value) lazy val shutdownHookThread = if (!destroyOnExit) None else Some(new Thread("subprocess-shutdown-hook") { - override def run(): Unit = proc.destroy(shutdownGracePeriod) + override def run(): Unit = { + println("proc.destroy(shutdownGracePeriod)") + proc.destroy(shutdownGracePeriod) + println("proc.destroy(shutdownGracePeriod) END") + } }) lazy val shutdownHookMonitorThread = shutdownHookThread.map(t => @@ -335,6 +341,7 @@ case class proc(command: Shellable*) { while (proc.wrapped.isAlive) Thread.sleep(1) try Runtime.getRuntime().removeShutdownHook(t) catch { case e: Throwable => /*do nothing*/ } + println("XXX shutdownHookMonitorThread END") } } ) @@ -350,6 +357,8 @@ case class proc(command: Shellable*) { shutdownHookMonitorThread = shutdownHookMonitorThread ) + println("XXX shutdownHookMonitorThread.foreach(_.start())") + shutdownHookMonitorThread.foreach(_.start()) proc.inputPumperThread.foreach(_.start()) @@ -376,7 +385,7 @@ case class proc(command: Shellable*) { mergeErrIntoOut = mergeErrIntoOut, propagateEnv = propagateEnv, shutdownGracePeriod = 100, - destroyOnExit = false + destroyOnExit = true ) /**