Lines Matching +full:timeout +full:- +full:sec

3  * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi>
55 struct dl_list timeout; member
78 dl_list_init(&eloop.timeout); in eloop_init()
83 return -1; in eloop_init()
90 return -1; in eloop_init()
106 return -1; in eloop_prepare_handles()
120 return -1; in eloop_register_read_sock()
125 return -1; in eloop_register_read_sock()
131 return -1; in eloop_register_read_sock()
138 return -1; in eloop_register_read_sock()
173 if (i != eloop.reader_count - 1) { in eloop_unregister_read_sock()
175 (eloop.reader_count - i - 1) * in eloop_unregister_read_sock()
178 eloop.reader_count--; in eloop_unregister_read_sock()
191 return -1; in eloop_register_event()
194 return -1; in eloop_register_event()
199 return -1; in eloop_register_event()
228 if (i != eloop.event_count - 1) { in eloop_unregister_event()
230 (eloop.event_count - i - 1) * in eloop_unregister_event()
233 eloop.event_count--; in eloop_unregister_event()
241 struct eloop_timeout *timeout, *tmp; in eloop_register_timeout() local
244 timeout = os_zalloc(sizeof(*timeout)); in eloop_register_timeout()
245 if (timeout == NULL) in eloop_register_timeout()
246 return -1; in eloop_register_timeout()
247 if (os_get_reltime(&timeout->time) < 0) { in eloop_register_timeout()
248 os_free(timeout); in eloop_register_timeout()
249 return -1; in eloop_register_timeout()
251 now_sec = timeout->time.sec; in eloop_register_timeout()
252 timeout->time.sec += secs; in eloop_register_timeout()
253 if (timeout->time.sec < now_sec) { in eloop_register_timeout()
255 * Integer overflow - assume long enough timeout to be assumed in eloop_register_timeout()
256 * to be infinite, i.e., the timeout would never happen. in eloop_register_timeout()
258 wpa_printf(MSG_DEBUG, "ELOOP: Too long timeout (secs=%u) to " in eloop_register_timeout()
259 "ever happen - ignore it", secs); in eloop_register_timeout()
260 os_free(timeout); in eloop_register_timeout()
263 timeout->time.usec += usecs; in eloop_register_timeout()
264 while (timeout->time.usec >= 1000000) { in eloop_register_timeout()
265 timeout->time.sec++; in eloop_register_timeout()
266 timeout->time.usec -= 1000000; in eloop_register_timeout()
268 timeout->eloop_data = eloop_data; in eloop_register_timeout()
269 timeout->user_data = user_data; in eloop_register_timeout()
270 timeout->handler = handler; in eloop_register_timeout()
273 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) { in eloop_register_timeout()
274 if (os_reltime_before(&timeout->time, &tmp->time)) { in eloop_register_timeout()
275 dl_list_add(tmp->list.prev, &timeout->list); in eloop_register_timeout()
279 dl_list_add_tail(&eloop.timeout, &timeout->list); in eloop_register_timeout()
285 static void eloop_remove_timeout(struct eloop_timeout *timeout) in eloop_remove_timeout() argument
287 dl_list_del(&timeout->list); in eloop_remove_timeout()
288 os_free(timeout); in eloop_remove_timeout()
295 struct eloop_timeout *timeout, *prev; in eloop_cancel_timeout() local
298 dl_list_for_each_safe(timeout, prev, &eloop.timeout, in eloop_cancel_timeout()
300 if (timeout->handler == handler && in eloop_cancel_timeout()
301 (timeout->eloop_data == eloop_data || in eloop_cancel_timeout()
303 (timeout->user_data == user_data || in eloop_cancel_timeout()
305 eloop_remove_timeout(timeout); in eloop_cancel_timeout()
318 struct eloop_timeout *timeout, *prev; in eloop_cancel_timeout_one() local
323 remaining->sec = remaining->usec = 0; in eloop_cancel_timeout_one()
325 dl_list_for_each_safe(timeout, prev, &eloop.timeout, in eloop_cancel_timeout_one()
327 if (timeout->handler == handler && in eloop_cancel_timeout_one()
328 (timeout->eloop_data == eloop_data) && in eloop_cancel_timeout_one()
329 (timeout->user_data == user_data)) { in eloop_cancel_timeout_one()
331 if (os_reltime_before(&now, &timeout->time)) in eloop_cancel_timeout_one()
332 os_reltime_sub(&timeout->time, &now, remaining); in eloop_cancel_timeout_one()
333 eloop_remove_timeout(timeout); in eloop_cancel_timeout_one()
346 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) { in eloop_is_timeout_registered()
347 if (tmp->handler == handler && in eloop_is_timeout_registered()
348 tmp->eloop_data == eloop_data && in eloop_is_timeout_registered()
349 tmp->user_data == user_data) in eloop_is_timeout_registered()
364 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) { in eloop_deplete_timeout()
365 if (tmp->handler == handler && in eloop_deplete_timeout()
366 tmp->eloop_data == eloop_data && in eloop_deplete_timeout()
367 tmp->user_data == user_data) { in eloop_deplete_timeout()
368 requested.sec = req_secs; in eloop_deplete_timeout()
371 os_reltime_sub(&tmp->time, &now, &remaining); in eloop_deplete_timeout()
375 eloop_register_timeout(requested.sec, in eloop_deplete_timeout()
385 return -1; in eloop_deplete_timeout()
396 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) { in eloop_replenish_timeout()
397 if (tmp->handler == handler && in eloop_replenish_timeout()
398 tmp->eloop_data == eloop_data && in eloop_replenish_timeout()
399 tmp->user_data == user_data) { in eloop_replenish_timeout()
400 requested.sec = req_secs; in eloop_replenish_timeout()
403 os_reltime_sub(&tmp->time, &now, &remaining); in eloop_replenish_timeout()
407 eloop_register_timeout(requested.sec, in eloop_replenish_timeout()
417 return -1; in eloop_replenish_timeout()
474 return -1; in eloop_register_signal()
514 return -1; in eloop_register_signal_terminate()
540 (!dl_list_empty(&eloop.timeout) || eloop.reader_count > 0 || in eloop_run()
542 struct eloop_timeout *timeout; in eloop_run() local
543 tv.sec = tv.usec = 0; in eloop_run()
544 timeout = dl_list_first(&eloop.timeout, struct eloop_timeout, in eloop_run()
546 if (timeout) { in eloop_run()
548 if (os_reltime_before(&now, &timeout->time)) in eloop_run()
549 os_reltime_sub(&timeout->time, &now, &tv); in eloop_run()
562 if (timeout) in eloop_run()
563 timeout_val = tv.sec * 1000 + tv.usec / 1000; in eloop_run()
585 timeout = dl_list_first(&eloop.timeout, struct eloop_timeout, in eloop_run()
587 if (timeout) { in eloop_run()
589 if (!os_reltime_before(&now, &timeout->time)) { in eloop_run()
590 void *eloop_data = timeout->eloop_data; in eloop_run()
591 void *user_data = timeout->user_data; in eloop_run()
593 timeout->handler; in eloop_run()
594 eloop_remove_timeout(timeout); in eloop_run()
652 struct eloop_timeout *timeout, *prev; in eloop_destroy() local
654 dl_list_for_each_safe(timeout, prev, &eloop.timeout, in eloop_destroy()
656 eloop_remove_timeout(timeout); in eloop_destroy()