> 3) Simplify design - i.e, for stuff like semaphores,
> use a simple channel and a counter, instead of say,
> multiple channels.
>>My answer came through simplification. Instead of having a channel from
A send an Event to B, and then B trying to send to A, I sent the Event
from A to B through the channel with a callback as an argument
B then used this callback function object to pass the result of the
event back to its originator directly.
Simpler and no loop. :)