> At the end of engine_poll, there is timer_run() and: > timer_run(void) > { > struct Timer* ptr; > while ((ptr = evInfo.gens.g_timer)) { > if (CurrentTime < ptr->t_expire) > break; /* processed all pending timers */ > > So i guess that CurrentTime < ptr->t_expire is true and should not...
That's a possibility, but that would be a more general problem, and I've never seen it crop up before. In fact, the debug log that you included shows that this cannot be the case--the trouble is probably that a socket received data, but we fail to read that data in before calling poll() again. This could happen if poll() doesn't return the correct number of sockets that events have occurred on, which might be a possibility... Could you perhaps run the server at debug level 11? That'll trigger the debugging messages embedded in the poll() loop itself. Note that this will result in *enormous* debug logs, but it should give a bit more insight into your problem. -- Kevin L. Mitchell <[EMAIL PROTECTED]>