diff --git a/scheduler/services.c b/scheduler/services.c index 68eeed7fdeb..8df0e3e4094 100644 --- a/scheduler/services.c +++ b/scheduler/services.c @@ -107,7 +107,9 @@ static DWORD CALLBACK SERVICE_Loop( SERVICETABLE *service ) } if ( s->flags & SERVICE_USE_TIMEOUT ) - if ( timercmp( &s->expire, &curTime, < ) ) + if ((s->expire.tv_sec < curTime.tv_sec) || + ((s->expire.tv_sec == curTime.tv_sec) && + (s->expire.tv_usec <= curTime.tv_usec))) { SERVICE_AddTimeval( &s->expire, s->rate ); callback = s->callback;