rpc: ensure worker is killed if it hangs on shutdown
This commit is contained in:
parent
d2f1687c57
commit
0607fa692d
@ -1,4 +1,5 @@
|
||||
import Foundation
|
||||
import Darwin
|
||||
import OSLog
|
||||
|
||||
struct ControlRequestParams: @unchecked Sendable {
|
||||
@ -242,6 +243,12 @@ actor AgentRPC {
|
||||
self.stdoutHandle?.readabilityHandler = nil
|
||||
let proc = self.process
|
||||
proc?.terminate()
|
||||
if let proc, proc.isRunning {
|
||||
try? await Task.sleep(nanoseconds: 700_000_000)
|
||||
if proc.isRunning {
|
||||
kill(proc.processIdentifier, SIGKILL)
|
||||
}
|
||||
}
|
||||
proc?.waitUntilExit()
|
||||
self.process = nil
|
||||
self.stdinHandle = nil
|
||||
|
||||
Loading…
Reference in New Issue
Block a user