Source code for pypushflow.concurrent.non_daemonic

import sys
from multiprocessing import context


[docs] def get_context(context: str = None) -> context.BaseContext: return _NONDAEMONIC_CONTEXTS[context]()
[docs] class SpawnNonDaemonicProcess(context.SpawnProcess): @property def daemon(self): return False @daemon.setter def daemon(self, value): pass
[docs] class SpawnNonDaemonicContext(context.SpawnContext): Process = SpawnNonDaemonicProcess
if sys.platform == "win32": _NONDAEMONIC_CONTEXTS = { None: SpawnNonDaemonicContext, "spawn": SpawnNonDaemonicContext, } else:
[docs] class ForkNonDaemonicProcess(context.ForkProcess): @property def daemon(self): return False @daemon.setter def daemon(self, value): pass
[docs] class ForkServerNonDaemonicProcess(context.ForkServerProcess): @property def daemon(self): return False @daemon.setter def daemon(self, value): pass
[docs] class ForkNonDaemonicContext(context.ForkContext): Process = ForkNonDaemonicProcess
[docs] class ForkServerNonDaemonicContext(context.ForkServerContext): Process = ForkServerNonDaemonicProcess
if sys.platform == "darwin": _NONDAEMONIC_CONTEXTS = { None: SpawnNonDaemonicContext, "spawn": SpawnNonDaemonicContext, "fork": ForkNonDaemonicContext, "forkserver": ForkServerNonDaemonicContext, } else: _NONDAEMONIC_CONTEXTS = { None: ForkNonDaemonicContext, "spawn": SpawnNonDaemonicContext, "fork": ForkNonDaemonicContext, "forkserver": ForkServerNonDaemonicContext, }