File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -169,6 +169,11 @@ def get_preparation_data(name):
169
169
else :
170
170
sys_path [i ] = process .ORIGINAL_DIR
171
171
172
+ if sys .platform != "win32" :
173
+ from .semaphore_tracker import _semaphore_tracker
174
+ _semaphore_tracker .ensure_running ()
175
+ d ['semaphore_tracker_pid' ] = _semaphore_tracker ._pid
176
+
172
177
d .update (
173
178
name = name ,
174
179
sys_path = sys_path ,
@@ -231,6 +236,10 @@ def prepare(data):
231
236
if 'start_method' in data :
232
237
set_start_method (data ['start_method' ], force = True )
233
238
239
+ if 'semaphore_tracker_pid' in data :
240
+ from .semaphore_tracker import _semaphore_tracker
241
+ _semaphore_tracker ._pid = data ['semaphore_tracker_pid' ]
242
+
234
243
if 'init_main_from_name' in data :
235
244
_fixup_main_from_name (data ['init_main_from_name' ])
236
245
elif 'init_main_from_path' in data :
Original file line number Diff line number Diff line change @@ -4896,10 +4896,10 @@ def test_semaphore_tracker_sigkill(self):
4896
4896
self .check_semaphore_tracker_death (signal .SIGKILL , True )
4897
4897
4898
4898
@staticmethod
4899
- def _is_semaphore_tracker_reused (conn ):
4899
+ def _is_semaphore_tracker_reused (conn , pid ):
4900
4900
from multiprocessing .semaphore_tracker import _semaphore_tracker
4901
4901
_semaphore_tracker .ensure_running ()
4902
- reused = _semaphore_tracker ._pid is None
4902
+ reused = _semaphore_tracker ._pid == pid
4903
4903
reused &= _semaphore_tracker ._check_alive ()
4904
4904
conn .send (reused )
4905
4905
@@ -4911,7 +4911,7 @@ def test_semaphore_tracker_reused(self):
4911
4911
ctx = multiprocessing .get_context ("spawn" )
4912
4912
r , w = ctx .Pipe (duplex = False )
4913
4913
p = ctx .Process (target = self ._is_semaphore_tracker_reused ,
4914
- args = (w ,))
4914
+ args = (w , pid ))
4915
4915
p .start ()
4916
4916
is_semaphore_tracker_reused = r .recv ()
4917
4917
You can’t perform that action at this time.
0 commit comments