On Mon, 16 Oct 2017 07:42:06 -0700, jn...@jnthn.net wrote:
> So the question is if we can find a way to have 2 and 4, while
> retaining 1 and 3, and at what cost.

Also noting that in order to preserve 3, then in a situation like:

* "Thread" 1 sends message A
* Handler for message A starts running
* "Thread" 2 sends message B
* Handler for message A emits a recursive message C
* Handler for message A completes

Then at this point, the next thing that needs to happen is for message B to be 
processed, for fairness. This means that "Thread" 1 needs to (non-blockingly, 
if in the pool) wait until message B has been processed, before it can do 
message C. If we can arrange for that to happen then I guess things would work 
out OK enough: the sender of A will have to wait a while, but the recursive 
message send of C was "its fault" for sending A.

Reply via email to