From 1319a826586d0b65b7f4ef02fdc2f647f80df54f Mon Sep 17 00:00:00 2001 From: Stephen von Takach Date: Tue, 18 Feb 2025 23:32:01 +1100 Subject: [PATCH] stay shutdown if there is no reason to launch --- src/placeos-driver/protocol/management.cr | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/placeos-driver/protocol/management.cr b/src/placeos-driver/protocol/management.cr index 974b7b34..4f2d841c 100644 --- a/src/placeos-driver/protocol/management.cr +++ b/src/placeos-driver/protocol/management.cr @@ -439,13 +439,20 @@ class PlaceOS::Driver::Protocol::Management # this executes once the driver has exited status = $? request_lock.synchronize { @running = false } + @pid = -1_i64 + @proc = nil @last_exit_code = exit_code = status.exit_code + File.delete(unix_socket) rescue nil Log.info { {message: "driver process exited with #{exit_code}", driver_path: @driver_path} } unless status.success? rescue error Log.error(exception: error) { "error launching driver: #{@driver_path}" } ensure - sleep 1.second - launch_driver_failed + @io.try(&.close) rescue nil + @io = nil + if !modules.empty? + sleep 200.milliseconds + launch_driver_failed + end end private def launch_driver_failed