forked from goodboy/tractor
Merge pull request 'Duplicated channel on `Actor._peers` causes hang on `portal.cancel_actor()`' (#25) from discovery_dedup into main
Reviewed-on: goodboy/tractor#25
commit
4e8404bb09
|
@ -114,9 +114,15 @@ def get_peer_by_name(
|
||||||
'''
|
'''
|
||||||
actor: Actor = current_actor()
|
actor: Actor = current_actor()
|
||||||
to_scan: dict[tuple, list[Channel]] = actor._peers.copy()
|
to_scan: dict[tuple, list[Channel]] = actor._peers.copy()
|
||||||
pchan: Channel|None = actor._parent_chan
|
|
||||||
if pchan:
|
# TODO: is this ever needed? creates a duplicate channel on actor._peers
|
||||||
to_scan[pchan.uid].append(pchan)
|
# when multiple find_actor calls are made to same actor from a single ctx
|
||||||
|
# which causes actor exit to hang waiting forever on
|
||||||
|
# `actor._no_more_peers.wait()` in `_runtime.async_main`
|
||||||
|
|
||||||
|
# pchan: Channel|None = actor._parent_chan
|
||||||
|
# if pchan and pchan.uid not in to_scan:
|
||||||
|
# to_scan[pchan.uid].append(pchan)
|
||||||
|
|
||||||
for aid, chans in to_scan.items():
|
for aid, chans in to_scan.items():
|
||||||
_, peer_name = aid
|
_, peer_name = aid
|
||||||
|
|
Loading…
Reference in New Issue