@@ -1861,10 +1861,15 @@ _dispatch_timers_get_delay(uint64_t nows[], struct dispatch_timer_s timer[],
1861
1861
1862
1862
#if HAVE_KEVENT64
1863
1863
# define kevent_set_ext1 (ke ,val ) (ke)->ext[1] = (val)
1864
- # define delay_add_wall (delay ,at ) (delay) += (at)
1864
+ # define adjust_delay (delay ,at ) (delay) += (at)
1865
1865
#else
1866
1866
# define kevent_set_ext1 (ke ,val ) do { } while (0)
1867
- # define delay_add_wall (delay ,at ) do { } while (0)
1867
+ # define adjust_delay (delay ,at ) \
1868
+ do { \
1869
+ delay /= 1000000L ; \
1870
+ if ((int64_t )(delay ) <= 0 ) delay = 1 ; /* for some reason time turns negative */ \
1871
+ } while (0 )
1872
+
1868
1873
#endif
1869
1874
1870
1875
static bool
@@ -1891,13 +1896,7 @@ _dispatch_timers_program2(uint64_t nows[], _dispatch_kevent_qos_s *ke,
1891
1896
TAILQ_FIRST (& _dispatch_kevent_timer [tidx ].dk_sources ), qos );
1892
1897
_dispatch_trace_next_timer_program (delay , qos );
1893
1898
nowtime = _dispatch_source_timer_now (nows , DISPATCH_TIMER_KIND_WALL );
1894
- delay_add_wall (delay ,nowtime );
1895
-
1896
- //printf("%s: delay %ld nsecs\n",__FUNCTION__,delay);
1897
- // convert delay into msecs
1898
- delay /= 1000000L ;
1899
- if ((int64_t )(delay ) <= 0 ) delay = 1 ; // for some reason time turns negative
1900
- //if ((int64_t)(delay) <= 0) printf("%s: delay =%d\n",__FUNCTION__,(int64_t)delay);
1899
+ adjust_delay (delay ,nowtime );
1901
1900
1902
1901
if (slowpath (_dispatch_timers_force_max_leeway )) {
1903
1902
ke -> data = (int64_t )(delay + leeway );
0 commit comments