Crystal multithreading support

Are they necessarily competing concepts though?

I see them more as complementary, with different variants of nurseries that only collect results (including exceptions), whereas supervisors would be more suited for complex scenarios having support for limits on simultaneous execution, restarts and whatnot. So supervisors would be the choice for building the main loop of a web server, whereas a nursery would be the main choice during the actual execution of an incoming request (perhaps the program want to fetch a bunch of resources concurrently?).

What are your thoughts? It is very much possible that I miss some aspect of supervisors as I haven’t actually used erlang/elixir for anything.

@yxhuvud I see nurseries as abstract structures to group fibers while OTP is about starting/monitoring explicit actors, which is more concrete. I guess they may not be competing and supervisors might be buildable on top of nurseries, yes.

1 Like

@dsisnero sigh, don’t push even more papers for me to read:
https://people.cs.uchicago.edu/~jhr/papers/cml.html

3 Likes

One of the maintainers of racket compared go concurrency and concurrent ml - is go an acceptable cml? — wingolog - Also, F# uses the same concurrency model as CML in their hopac library is go an acceptable cml? — wingolog.

1 Like