> 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]>

Reply via email to