Actually, since it sounded like Phil was trying to force the writer to
wait for the reader, my assumption was that he wanted to force
blocking writes.

After a bit more experimentation, though, the problem looks like it is
probably caused by buffering, rather than async writes. You could try
or'ing the O_SYNC to the flags for your open() call, or adding it
after the fact with fcntl().

Lennon