#define NEAREST_TIMEOUT(loop) \
(((ObMainLoopTimer*)(loop)->timers->data)->timeout)
-static long timecompare(GTimeVal *a, GTimeVal *b)
+static glong timecompare(GTimeVal *a, GTimeVal *b)
{
- long r;
+ glong r;
if ((r = b->tv_sec - a->tv_sec)) return r;
return b->tv_usec - a->tv_usec;
if (curr->del_me) {
/* delete the top */
loop->timers = g_slist_delete_link(loop->timers, it);
+ if (curr->destroy)
+ curr->destroy(curr->data);
g_free(curr);
continue;
}