ev_io_start (EV_A_ &ev->io);
if (timeout > 0) {
+ /* Update timestamp to avoid timers running early */
+ ev_now_update (loop);
+
ev->timeout = timeout;
ev_timer_set (&ev->tm, timeout, 0.0);
ev_timer_start (EV_A_ &ev->tm);
if (ev->timeout > 0) {
if (!(ev_can_stop (&ev->tm))) {
+ /* Update timestamp to avoid timers running early */
+ ev_now_update (loop);
+
ev->tm.data = ev;
ev_timer_init (&ev->tm, rspamd_ev_watcher_timer_cb, ev->timeout, 0.0);
ev_timer_start (EV_A_ &ev->tm);
if (cbd->flags & RSPAMD_LUA_HTTP_FLAG_KEEP_ALIVE) {
cbd->fd = -1; /* FD is owned by keepalive connection */
-
- /* Update timestamp to make a more precise timers */
- ev_now_update (cbd->event_loop);
cbd->conn = rspamd_http_connection_new_keepalive (
NULL, /* Default context */
NULL,