that the events are ran again after the FD's are checked. This allows us
to schedule I/O checks between processing of user commands.
fd_set rd, wr;
struct timeval timo;
time_t tout;
- int hi;
+ int hi, events;
sock *s;
node *n, *p;
FD_ZERO(&wr);
for(;;)
{
- ev_run_list(&global_event_list);
+ events = ev_run_list(&global_event_list);
now = time(NULL);
tout = tm_first_shot();
if (tout <= now)
tm_shot();
continue;
}
- else
- {
- timo.tv_sec = tout - now;
- timo.tv_usec = 0;
- }
+ timo.tv_sec = events ? 0 : tout - now;
+ timo.tv_usec = 0;
hi = 0;
WALK_LIST(n, sock_list)