Hello, While reading the article at http://www.sitepoint.com/the-self-pipe-trick-explained/ I realized that the signal handling code shown there and of the same type in your application is broken. As you have a single nonblocking pipe in your application you can drop signals entirely (and not just fold multiple signals of the same type into one). The simplest fix is to use a pipe for each individual type of signal or to just use pselect or similar. I'm pretty sure that there is a way to use a single pipe but it seems complicated and very difficult to implement correctly.
Thank you, Steven Stewart-Gallus
