Lines Matching refs:timeout

117 	struct dl_list timeout;
238 dl_list_init(&eloop.timeout);
848 struct eloop_timeout *timeout, *tmp;
851 timeout = os_zalloc(sizeof(*timeout));
852 if (timeout == NULL)
854 if (os_get_reltime(&timeout->time) < 0) {
855 os_free(timeout);
858 now_sec = timeout->time.sec;
859 timeout->time.sec += secs;
860 if (timeout->time.sec < now_sec) {
862 * Integer overflow - assume long enough timeout to be assumed
863 * to be infinite, i.e., the timeout would never happen.
865 wpa_printf(MSG_DEBUG, "ELOOP: Too long timeout (secs=%u) to "
867 os_free(timeout);
870 timeout->time.usec += usecs;
871 while (timeout->time.usec >= 1000000) {
872 timeout->time.sec++;
873 timeout->time.usec -= 1000000;
875 timeout->eloop_data = eloop_data;
876 timeout->user_data = user_data;
877 timeout->handler = handler;
878 wpa_trace_add_ref(timeout, eloop, eloop_data);
879 wpa_trace_add_ref(timeout, user, user_data);
880 wpa_trace_record(timeout);
885 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) {
886 if (os_reltime_before(&timeout->time, &tmp->time)) {
887 dl_list_add(tmp->list.prev, &timeout->list);
895 dl_list_add_tail(&eloop.timeout, &timeout->list);
905 static void eloop_remove_timeout(struct eloop_timeout *timeout)
910 dl_list_del(&timeout->list);
911 wpa_trace_remove_ref(timeout, eloop, timeout->eloop_data);
912 wpa_trace_remove_ref(timeout, user, timeout->user_data);
913 os_free(timeout);
923 struct eloop_timeout *timeout, *prev;
926 dl_list_for_each_safe(timeout, prev, &eloop.timeout,
928 if (timeout->handler == handler &&
929 (timeout->eloop_data == eloop_data ||
931 (timeout->user_data == user_data ||
933 eloop_remove_timeout(timeout);
946 struct eloop_timeout *timeout, *prev;
953 dl_list_for_each_safe(timeout, prev, &eloop.timeout,
955 if (timeout->handler == handler &&
956 (timeout->eloop_data == eloop_data) &&
957 (timeout->user_data == user_data)) {
959 if (os_reltime_before(&now, &timeout->time))
960 os_reltime_sub(&timeout->time, &now, remaining);
961 eloop_remove_timeout(timeout);
976 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) {
1000 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) {
1032 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) {
1193 (!dl_list_empty(&eloop.timeout) || eloop.readers.count > 0 ||
1195 struct eloop_timeout *timeout;
1210 timeout = dl_list_first(&eloop.timeout, struct eloop_timeout,
1212 if (timeout) {
1214 if (os_reltime_before(&now, &timeout->time))
1215 os_reltime_sub(&timeout->time, &now, &tv);
1237 timeout ? timeout_ms : -1);
1244 timeout ? &_tv : NULL);
1260 timeout ? &ts : NULL);
1290 timeout = dl_list_first(&eloop.timeout, struct eloop_timeout,
1292 if (timeout) {
1294 if (!os_reltime_before(&now, &timeout->time)) {
1295 void *eloop_data = timeout->eloop_data;
1296 void *user_data = timeout->user_data;
1298 timeout->handler;
1299 eloop_remove_timeout(timeout);
1313 * same FD in the signal or timeout handlers, so we
1358 struct eloop_timeout *timeout, *prev;
1362 dl_list_for_each_safe(timeout, prev, &eloop.timeout,
1365 sec = timeout->time.sec - now.sec;
1366 usec = timeout->time.usec - now.usec;
1367 if (timeout->time.usec < now.usec) {
1371 wpa_printf(MSG_INFO, "ELOOP: remaining timeout: %d.%06d "
1373 sec, usec, timeout->eloop_data, timeout->user_data,
1374 timeout->handler);
1375 wpa_trace_dump_funcname("eloop unregistered timeout handler",
1376 timeout->handler);
1377 wpa_trace_dump("eloop timeout", timeout);
1378 eloop_remove_timeout(timeout);