Thanks for that. I suppose there are workarounds -- Given that the proposed functionality is in control of both processes, your issue about if one end dies is under the control of the programmer. An inelegant way to avoid the blocking problem is to complete an I/O cycle at regular intervals that either sends a message to reflect what happened in the interval or a "nothing happened" message. But of course it would be better to use intrinsically non-blocking communication in the first place but then you need an event-driven process model.
__________________________________________________________________________________
^M Free your mind!