mirror of
https://github.com/clearml/clearml
synced 2025-02-02 01:54:23 +00:00
Fix avoid using Process object for forking
Fix lost semaphores
This commit is contained in:
parent
2cc4eff004
commit
7b5c676ab2
@ -515,7 +515,9 @@ class BackgroundMonitor(object):
|
||||
|
||||
def _daemon(self):
|
||||
self._start_ev.set()
|
||||
try:
|
||||
self.daemon()
|
||||
finally:
|
||||
self.post_execution()
|
||||
self._thread = False
|
||||
|
||||
@ -553,11 +555,13 @@ class BackgroundMonitor(object):
|
||||
for d in BackgroundMonitor._instances.get(id(task.id), []):
|
||||
d.set_subprocess_mode()
|
||||
|
||||
# todo: solve for standalone spawn subprocess
|
||||
if ForkContext is not None and isinstance(get_context(), ForkContext):
|
||||
cls.__start_subprocess_forkprocess(task_obj_id=id(task.id))
|
||||
else:
|
||||
# ToDo: solve for standalone spawn subprocess
|
||||
# prefer os.fork, because multipprocessing.Process add atexit callback, which might later be invalid.
|
||||
cls.__start_subprocess_os_fork(task_obj_id=id(task.id))
|
||||
# if ForkContext is not None and isinstance(get_context(), ForkContext):
|
||||
# cls.__start_subprocess_forkprocess(task_obj_id=id(task.id))
|
||||
# else:
|
||||
# cls.__start_subprocess_os_fork(task_obj_id=id(task.id))
|
||||
|
||||
# wait until subprocess is up
|
||||
if wait_for_subprocess:
|
||||
|
Loading…
Reference in New Issue
Block a user