At work, we've had good results using select(). We've had code using it that has been running at least 5 years. We've been able to add to the code when we wanted, and we've not had any significant problems. The code has been running on 32 and 64-bit Linux systems, and even on our older BSDI boxes, where the OS thread support is broken.