mask() blocks all signals, init() unblocks them
use signalfd(2)

requires Linux 2.6.27+ and glibc 2.8+