X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Futil%2Ftimer.c;h=b4db7f48dfa0915eec9692bbece3937781d4d63f;hb=43df01880e106d710ea57a2025db17f7d7db74fa;hp=797ece02c73e3015300dc1e702b020b705a3fe24;hpb=d58d40cf86b22fb1339afb8ce9775182462162e5;p=chaz%2Ftint2 diff --git a/src/util/timer.c b/src/util/timer.c index 797ece0..b4db7f4 100644 --- a/src/util/timer.c +++ b/src/util/timer.c @@ -16,13 +16,15 @@ **************************************************************************/ #include +#include #include #include #include "timer.h" -GSList* timeout_list = 0; +GSList* timeout_list; struct timeval next_timeout; +GHashTable* multi_timeouts; // functions and structs for multi timeouts @@ -44,6 +46,24 @@ struct _timeout { multi_timeout* multi_timeout; }; + +void default_timeout() +{ + timeout_list = 0; + multi_timeouts = 0; +} + +void cleanup_timeout() +{ + while (timeout_list) { + timeout* t = timeout_list->data; + if (t->multi_timeout) + stop_multi_timeout(t); + free(t); + timeout_list = g_slist_remove(timeout_list, t); + } +} + void add_timeout_intern(int value_msec, int interval_msec, void(*_callback)(void*), void* arg, timeout* t); gint compare_timeouts(gconstpointer t1, gconstpointer t2); gint compare_timespecs(const struct timespec* t1, const struct timespec* t2); @@ -60,8 +80,6 @@ void callback_multi_timeout(void* mth); void remove_from_multi_timeout(timeout* t); void stop_multi_timeout(timeout* t); -GHashTable* multi_timeouts = 0; - /** Implementation notes for timeouts: The timeouts are kept in a GSList sorted by their * expiration time. * That means that update_next_timeout() only have to consider the first timeout in the list, @@ -155,18 +173,6 @@ void stop_timeout(timeout* t) } -void stop_all_timeouts() -{ - while (timeout_list) { - timeout* t = timeout_list->data; - if (t->multi_timeout) - stop_multi_timeout(t); - free(t); - timeout_list = g_slist_remove(timeout_list, t); - } -} - - void add_timeout_intern(int value_msec, int interval_msec, void(*_callback)(), void* arg, timeout *t) { t->interval_msec = interval_msec;