--- libev/ev.c 2020/01/22 02:20:47 1.524 +++ libev/ev.c 2020/01/22 14:09:07 1.525 @@ -3045,7 +3045,9 @@ now_floor = EV_TS_CONST (0.); time_update (EV_A_ EV_TSTAMP_HUGE); */ +#if EV_PERIODIC_ENABLE periodics_reschedule (EV_A); +#endif } ecb_noinline ecb_cold @@ -4097,6 +4099,12 @@ if (ecb_expect_true (timerfd >= 0)) waittime = EV_TS_CONST (MAX_BLOCKTIME2); #endif +#if !EV_PERIODIC_ENABLE + /* without periodics but with monotonic clock there is no need */ + /* for any time jump detection, so sleep longer */ + if (ecb_expect_true (have_monotonic)) + waittime = EV_TS_CONST (MAX_BLOCKTIME2); +#endif if (timercnt) {