0.2.0
Instead of sharing a single global read pipe, each `Waiter` now registers its own pipe. `signal_hook` already supports multiplexing signals, so this is a lot simpler. This also has the advantage that when no one is waiting, the signal handler doesn't waste time writing to a pipe.