mstar.utils.orphan

mstar.utils.orphan#

Watchdog that leaves once the process that spawned this one is gone.

Functions

exit_when_orphaned(who, parent_name, stop_signal)

Exit this process once parent dies, so nothing outlives its parent holding GPU memory or IPC handles.

watch_parent(who, parent_name[, stop_signal])

Start exit_when_orphaned() on a daemon thread.

mstar.utils.orphan.exit_when_orphaned(who, parent_name, stop_signal, parent=None, poll_s=0.5, grace_s=5.0)[source]#

Exit this process once parent dies, so nothing outlives its parent holding GPU memory or IPC handles.

Each parent terminates its children on every exit path it controls; this covers the one it cannot (killed outright). stop_signal is the graceful stop for this process, but a main thread stuck in a C call cannot service it, so exit hard after grace_s.

Parameters:
Return type:

None

mstar.utils.orphan.watch_parent(who, parent_name, stop_signal=signal.SIGTERM)[source]#

Start exit_when_orphaned() on a daemon thread.

Parameters:
  • who (str)

  • parent_name (str)

  • stop_signal (int)

Return type:

None