diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index 2bdb60aa1d..4c98c74a73 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -533,7 +533,7 @@ static slap_daemon_st slap_daemon[SLAPD_MAX_DAEMON_THREADS]; # define SLAP_EVENT_WAIT(t, tvp, nsp) do { \ *(nsp) = epoll_wait( slap_daemon[t].sd_epfd, revents, \ - dtblsize, (tvp) ? (tvp)->tv_sec * 1000 : -1 ); \ + dtblsize, (tvp) ? ((tvp)->tv_sec * 1000 + (tvp)->tv_usec / 1000) : -1 ); \ } while (0) #elif defined(SLAP_X_DEVPOLL) && defined(HAVE_DEVPOLL) @@ -709,7 +709,7 @@ static slap_daemon_st slap_daemon[SLAPD_MAX_DAEMON_THREADS]; # define SLAP_EVENT_WAIT(t, tvp, nsp) do { \ struct dvpoll sd_dvpoll; \ - sd_dvpoll.dp_timeout = (tvp) ? (tvp)->tv_sec * 1000 : -1; \ + sd_dvpoll.dp_timeout = (tvp) ? ((tvp)->tv_sec * 1000 + (tvp)->tv_usec / 1000) : -1; \ sd_dvpoll.dp_nfds = dtblsize; \ sd_dvpoll.dp_fds = revents; \ *(nsp) = ioctl( slap_daemon[t].sd_dpfd, DP_POLL, &sd_dvpoll ); \