forked from goodboy/tractor
Add race case handling for mp backend
parent
d497078eb7
commit
0118589875
|
@ -39,7 +39,8 @@ async def main():
|
|||
portal = await n.run_in_actor('spawner0', spawn_until, depth=0)
|
||||
portal1 = await n.run_in_actor('spawner1', spawn_until, depth=1)
|
||||
|
||||
# nursery cancellation should be triggered due to propagated error
|
||||
# nursery cancellation should be triggered due to propagated
|
||||
# error from child.
|
||||
await portal.result()
|
||||
await portal1.result()
|
||||
|
||||
|
|
|
@ -365,7 +365,7 @@ def test_multi_nested_subactors_error_through_nurseries(spawn):
|
|||
assert "NameError" in before
|
||||
|
||||
|
||||
def test_root_nursery_cancels_before_child_releases_tty_lock(spawn):
|
||||
def test_root_nursery_cancels_before_child_releases_tty_lock(spawn, start_method):
|
||||
"""Test that when the root sends a cancel message before a nested
|
||||
child has unblocked (which can happen when it has the tty lock and
|
||||
is engaged in pdb) it is indeed cancelled after exiting the debugger.
|
||||
|
@ -380,7 +380,15 @@ def test_root_nursery_cancels_before_child_releases_tty_lock(spawn):
|
|||
child.sendline('c')
|
||||
|
||||
for _ in range(4):
|
||||
child.expect(r"\(Pdb\+\+\)")
|
||||
try:
|
||||
child.expect(r"\(Pdb\+\+\)")
|
||||
except TimeoutError:
|
||||
if start_method == 'mp':
|
||||
# appears to be some little races that might result in the
|
||||
# last couple acts tearing down early
|
||||
break
|
||||
else:
|
||||
raise
|
||||
|
||||
before = str(child.before.decode())
|
||||
assert "NameError: name 'doggypants' is not defined" in before
|
||||
|
|
Loading…
Reference in New Issue