- ntimer = timer->next;
- if(now < timer->at)
- continue;
- if(timer->prev != NULL)
- timer->prev->next = timer->next;
- if(timer->next != NULL)
- timer->next->prev = timer->prev;
- if(timer == timers)
- timers = timer->next;
- timer->func(0, timer->data);
- free(timer);
- }
+ for(timer = timers; timer != NULL; timer = timer->next)
+ {
+ if(now < timer->at)
+ continue;
+ if(timer->prev != NULL)
+ timer->prev->next = timer->next;
+ if(timer->next != NULL)
+ timer->next->prev = timer->prev;
+ if(timer == timers)
+ timers = timer->next;
+ timer->func(0, timer->data);
+ free(timer);
+ break;
+ }
+ } while(timer != NULL);