On Wed, 9 Oct 2019 16:15:14 -0400, Sam Tobin-Hochstadt
<sa...@cs.indiana.edu> wrote:

>The Racket community, and even more so the design of Racket
>concurrency APIs, is very strongly influenced by the academic side of
>Racket. As far as I can tell, structured concurrency is fairly close
>to what is traditionally called the fork/join model.

To a 1st approximation. There are different implementations of
fork/join.

In some the forking thread stops immediately to wait for the spawned
child(ren) to exit.  In others, the forking thread can continue until
it executes a deliberate join.  

But then there are systems where join implicitly targets all children.
Then there are systems where join implicitly targets the last child
forked and to wait for all children you have to keep executing join
until it fails.  Still others where (like with Unix processes) join
implicitly targets a single child, but you don't know which one will
return and to wait for all you have to keep executing joins.  And
still others where join can be told to wait for a particular set of
children (ignoring others).


Threads in Racket are signaling, and their completion (or death) can
be detected using events or directly using their handles.  So Racket
can easily emulate any of the behaviors above.  Putting a nicer syntax
on it would just be some macrology.

George

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/neftpe5surndb67v0p2gqgrpklq8bq3jpf%404ax.com.

Reply via email to