Lul, fix everything for cluster helper

patch-async-enter-all
Tyler Goodlet 2021-10-04 16:01:09 -04:00
parent 5a99482b9d
commit 619b3b344a
1 changed files with 14 additions and 13 deletions

View File

@ -17,7 +17,10 @@ async def open_actor_cluster(
count: int = cpu_count(), count: int = cpu_count(),
names: Optional[list[str]] = None, names: Optional[list[str]] = None,
) -> AsyncGenerator[..., dict[str, tractor.Portal]]: ) -> AsyncGenerator[
list[str],
dict[str, tractor.Portal]
]:
portals: dict[str, tractor.Portal] = {} portals: dict[str, tractor.Portal] = {}
uid = tractor.current_actor().uid uid = tractor.current_actor().uid
@ -30,20 +33,18 @@ async def open_actor_cluster(
raise ValueError( raise ValueError(
'Number of names is {len(names)} but count it {count}') 'Number of names is {len(names)} but count it {count}')
async with ( async with tractor.open_nursery() as an:
tractor.open_nursery() as an, async with trio.open_nursery() as n:
trio.open_nursery() as n, for index, key in zip(range(count), names):
):
for index, key in zip(range(count), names):
async def start(i) -> None: async def start(i) -> None:
key = f'worker_{i}.' + '_'.join(uid) key = f'worker_{i}.' + '_'.join(uid)
portals[key] = await an.start_actor( portals[key] = await an.start_actor(
enable_modules=modules, enable_modules=modules,
name=key, name=key,
) )
n.start_soon(start, index) n.start_soon(start, index)
assert len(portals) == count assert len(portals) == count
yield portals yield portals