efficiently schedule I/O, time and signal based events
