Example #1
0
File: eloop.c Project: AxelLin/Drv
void eloop_destroy(void)
{
	struct eloop_timeout *timeout, *prev;
	struct os_time now;

	os_get_time(&now);
	dl_list_for_each_safe(timeout, prev, &eloop.timeout,
			      struct eloop_timeout, list) {
		int sec, usec;
		sec = timeout->time.sec - now.sec;
		usec = timeout->time.usec - now.usec;
		if (timeout->time.usec < now.usec) {
			sec--;
			usec += 1000000;
		}
		wpa_printf(MSG_INFO, "ELOOP: remaining timeout: %d.%06d "
			   "eloop_data=%p user_data=%p handler=%p",
			   sec, usec, timeout->eloop_data, timeout->user_data,
			   timeout->handler);
		wpa_trace_dump_funcname("eloop unregistered timeout handler",
					timeout->handler);
		wpa_trace_dump("eloop timeout", timeout);
		eloop_remove_timeout(timeout);
	}
	eloop_sock_table_destroy(&eloop.readers);
	eloop_sock_table_destroy(&eloop.writers);
	eloop_sock_table_destroy(&eloop.exceptions);
	os_free(eloop.signals);
}
Example #2
0
static void eloop_sock_table_destroy(struct eloop_sock_table *table) {
    if (table) {
        int i;
        for (i = 0; i < table->count && table->table; i++) {
            wpa_printf(MSG_INFO, "ELOOP: remaining socket: "
                    "sock=%d eloop_data=%p user_data=%p "
                    "handler=%p",
                    table->table[i].sock,
                    table->table[i].eloop_data,
                    table->table[i].user_data,
                    table->table[i].handler);
            wpa_trace_dump_funcname("eloop unregistered socket "
                    "handler",
                    table->table[i].handler);
            wpa_trace_dump("eloop sock", &table->table[i]);
        }
        os_free(table->table);
    }
}