DRAGONS has an issue where the loop_process in gempy.eti_core.eti cannot cleanly shut down when executed as a background worker through GOATS. The problem lies in the loop handling for a subprocess. A continue statement in the loop’s exception handling for KeyboardInterrupt prevents the loop from exiting. This behavior traps the cleanup in a perpetual state, making it unresponsive to typical shutdown signals and requiring forceful termination.
Proposed Fix:
Replace the continue statement with a break in the loop handling for KeyboardInterrupt. This change will allow the loop to exit upon receiving a shutdown signal. Implementing this fix will ensure that DRAGONS can terminate its subprocess properly, even when running as a background worker in multi-threaded environments like with GOATS.
Description:
DRAGONS has an issue where the
loop_process
ingempy.eti_core.eti
cannot cleanly shut down when executed as a background worker through GOATS. The problem lies in the loop handling for a subprocess. Acontinue
statement in the loop’s exception handling forKeyboardInterrupt
prevents the loop from exiting. This behavior traps the cleanup in a perpetual state, making it unresponsive to typical shutdown signals and requiring forceful termination.Proposed Fix:
Replace the
continue
statement with abreak
in the loop handling forKeyboardInterrupt
. This change will allow the loop to exit upon receiving a shutdown signal. Implementing this fix will ensure that DRAGONS can terminate its subprocess properly, even when running as a background worker in multi-threaded environments like with GOATS.