Skip to content

Commit e035fc9

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents f1031d6 + 82d44f5 commit e035fc9

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

src/09-built-on-asyncio/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
unsync
2-
trio==0.8.0
3-
trio_asyncio==0.9.1
2+
trio==0.16.0
3+
trio_asyncio==0.11.0
44

55
aiohttp
66
cchardet

src/09-built-on-asyncio/the_trio/prod_trio.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,40 @@ async def main():
88
t0 = datetime.datetime.now()
99
print(colorama.Fore.WHITE + "App started.", flush=True)
1010

11-
data = trio.Queue(capacity=10)
11+
"""
12+
trio.Queue was removed in v0.11.0:
13+
- Replacing the call to trio.Queue() by trio.open_memory_channel()
14+
- Using a MemorySendChannel object in generate_data function
15+
- Using a MemoryReceiveChannel object in process_data function
16+
- Updating requirements.txt with trio v0.16.0 and trio_asyncio v0.11.0
17+
"""
18+
19+
send_channel, receive_channel = trio.open_memory_channel(max_buffer_size=10)
1220

1321
with trio.move_on_after(5):
1422
async with trio.open_nursery() as nursery:
15-
nursery.start_soon(generate_data, 20, data, name='Prod 1')
16-
nursery.start_soon(generate_data, 20, data, name='Prod 2')
17-
nursery.start_soon(process_data, 40, data, name='Consumer')
23+
nursery.start_soon(generate_data, 20, send_channel, name='Prod 1')
24+
nursery.start_soon(generate_data, 20, send_channel, name='Prod 2')
25+
nursery.start_soon(process_data, 40, receive_channel, name='Consumer')
1826

1927
dt = datetime.datetime.now() - t0
2028
print(colorama.Fore.WHITE + "App exiting, total time: {:,.2f} sec.".format(
2129
dt.total_seconds()), flush=True)
2230

2331

24-
async def generate_data(num: int, data: trio.Queue):
32+
async def generate_data(num: int, data: trio.MemorySendChannel):
2533
for idx in range(1, num + 1):
2634
item = idx*idx
27-
await data.put((item, datetime.datetime.now()))
35+
await data.send((item, datetime.datetime.now()))
2836

2937
print(colorama.Fore.YELLOW + f" -- generated item {idx}", flush=True)
3038
await trio.sleep(random.random() + .5)
3139

3240

33-
async def process_data(num: int, data: trio.Queue):
41+
async def process_data(num: int, data: trio.MemoryReceiveChannel):
3442
processed = 0
3543
while processed < num:
36-
item = await data.get()
44+
item = await data.receive()
3745

3846
processed += 1
3947
value = item[0]

0 commit comments

Comments
 (0)