poll/dispatcher framework.
The top reasons for going multithreaded is:
* Take adventage of multicore CPUs
* No need to put slow operations in ugly helper threads now that the entire app is designed for multithreads
* Some of the timing sensetive tasks (IPTV output / RTP / UDP pacing) can run on RT priority.