Tweaks to make cancellation happen correctly on ringbuf receiver & fix test log msg

one_ring_to_rule_them_all
Guillermo Rodriguez 2025-04-10 11:27:52 -03:00
parent b2f6c298f5
commit e4868ded54
No known key found for this signature in database
GPG Key ID: 002CC5F1E6BDA53E
2 changed files with 3 additions and 3 deletions

View File

@ -92,7 +92,7 @@ async def child_write_shm(
await sender.send(msg) await sender.send(msg)
if rng.msgs_generated % rng.recommended_log_interval == 0: if rng.msgs_generated % rng.recommended_log_interval == 0:
print(f'wrote {rng.total_msgs} msgs') print(f'wrote {rng.msgs_generated} msgs')
print('writer exit') print('writer exit')
return rng.hexdigest return rng.hexdigest

View File

@ -533,7 +533,7 @@ class RingBufferReceiveChannel(trio.abc.ReceiveChannel[bytes]):
self._write_ptr += delta self._write_ptr += delta
# yield lock and re-enter # yield lock and re-enter
except EFDReadCancelled: except (EFDReadCancelled, trio.Cancelled):
# while waiting for new data `self._write_event` was closed # while waiting for new data `self._write_event` was closed
try: try:
# if eof was signaled receive no wait will not raise # if eof was signaled receive no wait will not raise
@ -654,7 +654,7 @@ async def attach_to_ringbuf_receiver(
Launches `receiver._eof_monitor_task` in a `trio.Nursery`. Launches `receiver._eof_monitor_task` in a `trio.Nursery`.
''' '''
async with ( async with (
trio.open_nursery() as n, trio.open_nursery(strict_exception_groups=False) as n,
RingBufferReceiveChannel( RingBufferReceiveChannel(
token, token,
cleanup=cleanup cleanup=cleanup