On Mon, Mar 17, 2008 at 9:50 AM, Hal Vaughan <hal@thresholddigital.com> wrote: 
...I want to be sure that the monitoring thread
won't be blocked while data it needs is coming in, but I don't want that
thread to block the other one while it (the monitoring thread) is waiting
for incoming data.

If you're doing synchronous reads and there is no data, then the reading thread will block (e.g. take no cpu cycles) until there is something to read. 

Jon