Skip to content

Commit 3809a10

Browse files
committed
moved the kevent time adjustment in _dispatch_timers_program2 to proper macro
1 parent aca0d3c commit 3809a10

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

src/source.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1861,10 +1861,15 @@ _dispatch_timers_get_delay(uint64_t nows[], struct dispatch_timer_s timer[],
18611861

18621862
#if HAVE_KEVENT64
18631863
# 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)
18651865
#else
18661866
# 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+
18681873
#endif
18691874

18701875
static bool
@@ -1891,13 +1896,7 @@ _dispatch_timers_program2(uint64_t nows[], _dispatch_kevent_qos_s *ke,
18911896
TAILQ_FIRST(&_dispatch_kevent_timer[tidx].dk_sources), qos);
18921897
_dispatch_trace_next_timer_program(delay, qos);
18931898
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);
19011900

19021901
if (slowpath(_dispatch_timers_force_max_leeway)) {
19031902
ke->data = (int64_t)(delay + leeway);

0 commit comments

Comments
 (0)