[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [ANN] article: Structured concurrency and Lua
- From: bil til <biltil52@...>
- Date: Wed, 21 Sep 2022 13:30:54 +0200
Sorry if I am standing COMPLETELY on the line.
The points 1 and 3-8 of your list I see completely in your async_main.
But the point 2 "End of nursery block is reached". With this you mean
the end of this do... end block with this "print( 'waiting for child
tasks') " at the end I assume?
How does your nursery get the the info, that this point is reached?
(as at this point the yielding should happen?) (or is the
trio.open_nursery() command repeated on each loop run? ... I am not
really sure about this, sorry...).
... sorry, I think now I get it ... you get it from the <close>
instruction... so your nursery/yielding work in fact starts at the
very end of this variable nursery, when the nursery.close is
invoked.... this sounds nice somehow... . (but you COULD also spend a
command "nursery.async_run()" or so after print... this would be nice
for "long line and happily standing people" like me :) ).
Am Mi., 21. Sept. 2022 um 13:00 Uhr schrieb John Belmonte <john@neggie.net>:
>
> We should just step through the sequence of events in that main_async(), to make this clear:
>
> 1. nursery is opened, and the two concurrent child tasks are queued
> 2. end of the nursery block is reached (after "waiting for child tasks") --> yield to the scheduler