#ifndef HAVE_MINGW
return a->fd - b->fd;
#else
- return a->event - b->event;
+
+ if(a->event < b->event) {
+ return -1;
+ }
+
+ if(a->event > b->event) {
+ return 1;
+ }
+
+ return 0;
#endif
}
timersub(&timeout->tv, &now, diff);
if(diff->tv_sec < 0) {
- timeout->cb(timeout->data);
-
- if(timercmp(&timeout->tv, &now, <)) {
- timeout_del(timeout);
- }
+ timeout_cb_t cb = timeout->cb;
+ timeout_del(timeout);
+ cb(timeout->data);
} else {
tv = diff;
break;