Some interesting reads: -- "A history of S_IFMT": http://www.lubutu.com/soso/a-history-of-sifmt -- "TASK_KILLABLE": http://lwn.net/Articles/288056/ -- The syscall "signalfd()" which was new to me (whoops): http://man7.org/linux/man-pages/man2/signalfd.2.html -- Why "signalfd()" doesn't solve your problems either: https://ldpreload.com/blog/signalfd-is-useless ____________________ I spent the better part of the weekend experimenting with PulseAudio. I've always avoided PulseAudio as best as I could. It's a big application and people say it causes a lot of problems. Most importantly, plain ALSA worked okay for me. I have a pretty simple setup (just a soundcard and speakers) that doesn't change a lot. So why bother? Recently, I wanted to use HDMI audio. It took me about an hour to write an asoundrc for that purpose. Oh, right, I explicitly disabled HDMI audio before because it was getting in the way. I also wanted to make use of some bluetooth speakers, but I didn't even try to get them working. Okay, let's just give PulseAudio a try. It works a lot better than I expected. No stuttering, no high latency, no crashes (yet). The feature set is nice. All applications, even older ones that use OSS, still work. I think I'll keep it. Of course, I'd much rather use a simpler sound stack. Right now, sound goes from the application through some wrapper library (like libao) through userland ALSA (maybe) which then routes it to PulseAudio which finally routes it to kernel ALSA. That's crazy. I agree with many points made in this blog post, even though it's from 2009: http://insanecoding.blogspot.de/2009/06/state-of-sound-in-linux-not-so-sorry.html But then again, I'm tired of manually writing some asoundrc when I can achieve the same goal using PulseAudio with just a few mouse clicks or pacmd commands.