diff options
author | Sam Leffler <sam@FreeBSD.org> | 2009-01-15 04:25:21 +0000 |
---|---|---|
committer | Sam Leffler <sam@FreeBSD.org> | 2009-01-15 04:25:21 +0000 |
commit | 22188e6ab4f02f981de3b9f228a40b1e8f98e6a1 (patch) | |
tree | e396cb7a4849178b23486ba07b66a6dfede1d1e9 /eloop.c | |
parent | 17914a6ec9e4814998abdaec5a947b6a78709a19 (diff) |
Notes
Diffstat (limited to 'eloop.c')
-rw-r--r-- | eloop.c | 24 |
1 files changed, 23 insertions, 1 deletions
@@ -232,7 +232,10 @@ int eloop_register_timeout(unsigned int secs, unsigned int usecs, timeout = os_malloc(sizeof(*timeout)); if (timeout == NULL) return -1; - os_get_time(&timeout->time); + if (os_get_time(&timeout->time) < 0) { + os_free(timeout); + return -1; + } timeout->time.sec += secs; timeout->time.usec += usecs; while (timeout->time.usec >= 1000000) { @@ -302,6 +305,25 @@ int eloop_cancel_timeout(eloop_timeout_handler handler, } +int eloop_is_timeout_registered(eloop_timeout_handler handler, + void *eloop_data, void *user_data) +{ + struct eloop_timeout *tmp; + + tmp = eloop.timeout; + while (tmp != NULL) { + if (tmp->handler == handler && + tmp->eloop_data == eloop_data && + tmp->user_data == user_data) + return 1; + + tmp = tmp->next; + } + + return 0; +} + + #ifndef CONFIG_NATIVE_WINDOWS static void eloop_handle_alarm(int sig) { |