/*! * \brief Timer routine for expiration of dialogs * Timer handler for expiration of dialogs, runs the global timer handler on them. * \param ticks time for expiration checks * \param attr unused */ void dlg_timer_routine(unsigned int ticks , void * attr) { struct dlg_tl *tl, *ctl; tl = get_expired_dlgs( ticks ); while (tl) { ctl = tl; tl = tl->next; ctl->next = NULL; LM_DBG("tl=%p next=%p\n", ctl, tl); timer_hdl( ctl ); } }
void dlg_timer_routine(unsigned int ticks , void * attr) { struct dlg_tl *tl, *ctl; tl = get_expired_dlgs( ticks ); while (tl) { ctl = tl; tl = tl->next; /* keep dialog as expired (next is still set) */ ctl->next = (struct dlg_tl*)(-1); LM_DBG("tl=%p next=%p\n", ctl, tl); timer_hdl( ctl ); } }