- /* notes:
- - we should use epoll(4)
- - timer are checked twice. there was a strong reason for it, but i can't remember. (FIXME)
- - for each time, we gettimeofday() and check wether the timer should fire.
- we should do this all better - we know how long the poll last, so we know which
- timers should fire. Problem is that a timer handler could have required so
- much time that another timer fired.
-
- A probably structure could look
-
- while (1)
- {
- time = gettimeofday()
- timeout = calculate_pending_timers(time);
-
- doPoll(timeout or infinite);
-
- if (poll_had_results)
- handle_poll_handler();
- else
- fire_timers(time + timeout)
- }
-
- the gettimeofday() call is required because fire_timers could last more
- than nothing.
-
- when poll did no timeout, we don't handle timers, as this will be done
- in the next iteration (without adding overhead - we had to get the new
- time anyway
- */
-