What about: 1) create a trap handler 2) set a flag 3) background a subshell that sleeps then signals the parent (your timeout) 4) attempt the write, after which clear the flag 5) if the trap handler finds the flag still set, you're blocked and can exit, or do whatever.
/* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
