Lines Matching refs:tp

54 	fmd_timer_t *tp, *up;  in fmd_timerq_install()  local
60 if ((tp = fmd_list_next(&tmq->tmq_free)) == NULL) { in fmd_timerq_install()
61 tp = fmd_zalloc(sizeof (fmd_timer_t), FMD_SLEEP); in fmd_timerq_install()
62 (void) pthread_cond_init(&tp->tmr_cv, NULL); in fmd_timerq_install()
64 fmd_list_delete(&tmq->tmq_free, tp); in fmd_timerq_install()
66 if ((id = fmd_idspace_alloc(ids, tp)) == -1) { in fmd_timerq_install()
67 fmd_list_prepend(&tmq->tmq_free, tp); in fmd_timerq_install()
80 tp->tmr_hrt = hrt; in fmd_timerq_install()
81 tp->tmr_ids = ids; in fmd_timerq_install()
82 tp->tmr_id = id; in fmd_timerq_install()
83 tp->tmr_func = func; in fmd_timerq_install()
84 tp->tmr_arg = arg; in fmd_timerq_install()
92 if (tp->tmr_hrt < up->tmr_hrt) in fmd_timerq_install()
97 fmd_list_insert_before(&tmq->tmq_list, up, tp); in fmd_timerq_install()
99 fmd_list_insert_after(&tmq->tmq_list, up, tp); in fmd_timerq_install()
101 if (up != NULL && fmd_list_next(&tmq->tmq_list) == tp) in fmd_timerq_install()
103 else if (up == NULL && fmd_list_next(&tmq->tmq_list) == tp) in fmd_timerq_install()
126 fmd_timer_t *tp; in fmd_timerq_remove() local
129 tp = fmd_idspace_free(ids, id); in fmd_timerq_remove()
130 ASSERT(tp == NULL || tp->tmr_ids == ids); in fmd_timerq_remove()
132 if (tp == NULL) { in fmd_timerq_remove()
137 if (tp->tmr_id == id) { in fmd_timerq_remove()
138 fmd_list_delete(&tmq->tmq_list, tp); in fmd_timerq_remove()
139 delta = tp->tmr_hrt - fmd_time_gethrtime(); in fmd_timerq_remove()
140 arg = tp->tmr_arg; in fmd_timerq_remove()
141 tp->tmr_id = 0; in fmd_timerq_remove()
142 fmd_list_append(&tmq->tmq_free, tp); in fmd_timerq_remove()
158 while (tp->tmr_id != 0) in fmd_timerq_remove()
159 (void) pthread_cond_wait(&tp->tmr_cv, &tmq->tmq_lock); in fmd_timerq_remove()
181 fmd_timer_t *tp; in fmd_timerq_exec() local
206 for (now = fmd_time_gethrtime(); (tp = fmd_list_next( in fmd_timerq_exec()
209 if (now == INT64_MAX || tp->tmr_hrt > now) in fmd_timerq_exec()
212 tp->tmr_id = -tp->tmr_id; in fmd_timerq_exec()
213 fmd_list_delete(&tmq->tmq_list, tp); in fmd_timerq_exec()
217 tp->tmr_ids->ids_name, -tp->tmr_id, tp->tmr_hrt)); in fmd_timerq_exec()
219 tp->tmr_func(tp->tmr_arg, -tp->tmr_id, tp->tmr_hrt); in fmd_timerq_exec()
222 tp->tmr_ids->ids_name, -tp->tmr_id)); in fmd_timerq_exec()
225 (void) fmd_idspace_free(tp->tmr_ids, -tp->tmr_id); in fmd_timerq_exec()
226 fmd_list_append(&tmq->tmq_free, tp); in fmd_timerq_exec()
227 tp->tmr_id = 0; /* for fmd_timer_remove() */ in fmd_timerq_exec()
229 (void) pthread_cond_broadcast(&tp->tmr_cv); in fmd_timerq_exec()
232 if (tp != NULL) { in fmd_timerq_exec()
234 fmd_time_waithrtime(tp->tmr_hrt - now); in fmd_timerq_exec()