1 #include "timers.h" 2 3 /*===========================================================================* 4 * tmrs_exptimers * 5 *===========================================================================*/ 6 void tmrs_exptimers(tmrs, now, new_head) 7 minix_timer_t **tmrs; /* pointer to timers queue */ 8 clock_t now; /* current time */ 9 clock_t *new_head; 10 { 11 /* Use the current time to check the timers queue list for expired timers. 12 * Run the watchdog functions for all expired timers and deactivate them. 13 * The caller is responsible for scheduling a new alarm if needed. 14 */ 15 minix_timer_t *tp; 16 17 while ((tp = *tmrs) != NULL && tp->tmr_exp_time <= now) { 18 *tmrs = tp->tmr_next; 19 tp->tmr_exp_time = TMR_NEVER; 20 (*tp->tmr_func)(tp); 21 } 22 23 if(new_head) { 24 if(*tmrs) 25 *new_head = (*tmrs)->tmr_exp_time; 26 else 27 *new_head = 0; 28 } 29 } 30 31 32