From 36dab66dc7314475eb54433cac653c3ca291bbe9 Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Tue, 10 Apr 2007 09:53:22 +1000 Subject: [PATCH] Change timer calculation based on feedback from PSI. Remove some duplicate code. r1842 | dcl | 2007-04-10 09:53:22 +1000 (Tue, 10 Apr 2007) | 2 lines --- nwatch.c | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/nwatch.c b/nwatch.c index c6ba4514..68856b0b 100644 --- a/nwatch.c +++ b/nwatch.c @@ -157,10 +157,11 @@ int NetWatchRegisterTimer(pNWTimer* handle, int mSec, return 0; memset(pNew, 0, sizeof(NWTimer)); gettimeofday(&pNew->tv, NULL); - pNew->tv.tv_usec += 1000 * mSec; + pNew->tv.tv_sec += mSec / 1000; + pNew->tv.tv_usec += 1000 * (mSec % 1000); if (pNew->tv.tv_usec > 1000000) { - pNew->tv.tv_sec += pNew->tv.tv_usec / 1000000; - pNew->tv.tv_usec %= 1000000; + pNew->tv.tv_sec ++; + pNew->tv.tv_usec -= 1000000; } pNew->tick = 0; pNew->func = callback; @@ -174,29 +175,15 @@ int NetWatchRegisterTimer(pNWTimer* handle, int mSec, int NetWatchRegisterTimerPeriodic(pNWTimer* handle, int mSecInitial, int mSecPeriod, pNWCallback callback, void* context) { - pNetWatch self = instance; - if(!self || self->lMagic != NWMAGIC) - return 0; - pNWTimer pNew = (pNWTimer) malloc(sizeof(NWTimer)); - if (pNew == NULL) - return 0; - memset(pNew, 0, sizeof(NWTimer)); - gettimeofday(&pNew->tv, NULL); - pNew->tv.tv_usec += 1000 * mSecInitial; - if (pNew->tv.tv_usec > 1000000) { - pNew->tv.tv_sec += pNew->tv.tv_usec / 1000000; - pNew->tv.tv_usec %= 1000000; + if (NetWatchRegisterTimer(handle, mSecInitial, callback, context)) { + pNWTimer pNew = *handle; + if (pNew == NULL) + return 0; + if (mSecPeriod > 0) + pNew->tick = mSecPeriod; + return 1; } - if (mSecPeriod > 0) - pNew->tick = mSecPeriod; - else - pNew->tick = 0; - pNew->func = callback; - pNew->cntx = context; - pNew->vrfy = NWMAGIC; - NetWatchTimerInsQue(self, pNew); - *handle = pNew; - return 1; + return 0; } int NetWatchGetTimerPeriod(pNWTimer handle)