The following question was raised during my
development of an asynchronous
library I'm currently building for RabbitMQ.
Aside / rhetorical: Are you trying to achieve a certain level of
"efficiency"? If so, read on.
I've been working on flow-based concepts for 25+ years (I use
various languages, incl. CL, as "assemblers").
The FBP model is kinda-like Actors (or CSP), with the embellishment
that siblings cannot "see" or know about one another - they must ask
their common parent to distribute messages.
FBP essentially discards most of the O/S and uses a small handful of
concepts, e.g. a scheduler, components, ports (queues), ready/wait
queues.
A very small "kernel" to handle only this set of concepts - entirely
eschewing the use of processes - can be easily built. If you can
read C, then peruse
https://github.com/guitarvydas/collate-fbp-classic for the most
bare-bones implementation of these concepts I have come up with to
date (the example is slightly more complicated than necessary,
because the "Collate" problem (page 91 of Paul Morrison's FBP book)
requires the use of bounded buffers). If you don't read C, and are
interested, ask me.