Like select() for threads:
"The npthread library allows the following seven types of threads:
* Call f(n) as soon as possible.
* Call f(n) if the current time is past t.
* Call f(n) if UNIX signal s has just arrived.
* Call f(n) if child process p has just exited.
* Call f(n) if user-defined flag p has just been waved.
* Call f(n) when file descriptor d is readable.
* Call f(n) when file descriptor d is writable."