MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / utimer_routine

Function utimer_routine

modules/tm/timer.c:1137–1168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1135
1136
1137void utimer_routine(utime_t uticks , void *set)
1138{
1139 struct timer_link *tl, *tmp_tl;
1140 struct timespec begin;
1141 int id;
1142
1143 clock_gettime(CLOCK_REALTIME, &begin);
1144
1145 lock_get( timertable[(long)set].ex_lock );
1146
1147 for( id=RT_T1_TO_1 ; id<NR_OF_TIMER_LISTS ; id++ )
1148 {
1149 /* to waste as little time in lock as possible, detach list
1150 with expired items and process them after leaving the lock */
1151 tl=check_and_split_time_list( &timertable[(long)set].timers[ id ], uticks);
1152 /* process items now */
1153 switch (id)
1154 {
1155 case RT_T1_TO_1:
1156 case RT_T1_TO_2:
1157 case RT_T1_TO_3:
1158 case RT_T2:
1159 run_handler_for_each(tl,retransmission_handler);
1160 break;
1161 }
1162 }
1163 lock_release( timertable[(long)set].ex_lock );
1164
1165 clock_check_diff((double)TM_UTIMER_ITV_US*1000 * TM_TIMER_LOAD_WARN,
1166 "now at %d%%+ capacity, inuse_transactions: %lu", (int)(TM_TIMER_LOAD_WARN*100),
1167 (unsigned long)get_stat_val(tm_trans_inuse));
1168}
1169

Callers

nothing calls this directly

Calls 3

lock_getFunction · 0.85
lock_releaseFunction · 0.85

Tested by

no test coverage detected