Thanks for the info, guys. I missed the major point that caused my confusion: select() waits until I/O is available based on its timeout argument. I was under the impression that it returned immediately and would constantly keep the loop running at full speed if I/O is not available. Now it all makes sense. In addition, epoll() and kqueue() are better to use than select since they're O(1) whereas select() is O(n). --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .