In C, you'd use something like this:

| fcntl(fd, F_SETFL, 
|          fcntl(fd, F_GETFL) &
|          ~O_NONBLOCK);

In Ruby, the following:

| require 'io/nonblock'
| fh = open('/tmp/myfifo')
| fh.nonblock = false

...which just hides the fcntl call and nasty constants in a nicer
interface. On my test machine, though, it looks like the FIFO opens in
blocking mode by default, at least if opened for writing.

Any of that help?

Lennon