diff options
author | Björn Jacke <bj@sernet.de> | 2010-08-25 12:23:50 +0200 |
---|---|---|
committer | Björn Jacke <bj@sernet.de> | 2010-08-31 10:25:54 +0200 |
commit | 4b09919f70b171bc6e053bc3014ffc0e36bc1ff1 (patch) | |
tree | 4ab472af3640e0a114ef3b2d3adb49cb32768a89 /source4 | |
parent | c091b3344badac6241b85c6cf2f7dacb0f06047c (diff) | |
download | samba-4b09919f70b171bc6e053bc3014ffc0e36bc1ff1.tar.gz samba-4b09919f70b171bc6e053bc3014ffc0e36bc1ff1.tar.bz2 samba-4b09919f70b171bc6e053bc3014ffc0e36bc1ff1.zip |
s4:process_thread: use monotonic time for time deltas
Diffstat (limited to 'source4')
-rw-r--r-- | source4/smbd/process_thread.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/source4/smbd/process_thread.c b/source4/smbd/process_thread.c index 8af785dd40..c047d23d26 100644 --- a/source4/smbd/process_thread.c +++ b/source4/smbd/process_thread.c @@ -233,17 +233,18 @@ static int thread_mutex_destroy(smb_mutex_t *mutex, const char *name) return pthread_mutex_destroy((pthread_mutex_t *)mutex->mutex); } -static void mutex_start_timer(struct timeval *tp1) +static void mutex_start_timer(struct timespec *tp1) { - gettimeofday(tp1,NULL); + clock_gettime_mono(tp1); } -static double mutex_end_timer(struct timeval tp1) +static double mutex_end_timer(struct timespec tp1) { - struct timeval tp2; - gettimeofday(&tp2,NULL); + struct timespec tp2; + + clock_gettime_mono(&tp2); return((tp2.tv_sec - tp1.tv_sec) + - (tp2.tv_usec - tp1.tv_usec)*1.0e-6); + (tp2.tv_nsec - tp1.tv_nsec)*1.0e-9); } /* @@ -254,7 +255,7 @@ static int thread_mutex_lock(smb_mutex_t *mutexP, const char *name) pthread_mutex_t *mutex = (pthread_mutex_t *)mutexP->mutex; int rc; double t; - struct timeval tp1; + struct timespec tp1; /* Test below is ONLY for debugging */ if ((rc = pthread_mutex_trylock(mutex))) { if (rc == EBUSY) { @@ -316,7 +317,7 @@ static int thread_rwlock_lock_read(smb_rwlock_t *rwlockP, const char *name) pthread_rwlock_t *rwlock = (pthread_rwlock_t *)rwlockP->rwlock; int rc; double t; - struct timeval tp1; + struct time tp1; /* Test below is ONLY for debugging */ if ((rc = pthread_rwlock_tryrdlock(rwlock))) { if (rc == EBUSY) { @@ -345,7 +346,7 @@ static int thread_rwlock_lock_write(smb_rwlock_t *rwlockP, const char *name) pthread_rwlock_t *rwlock = (pthread_rwlock_t *)rwlockP->rwlock; int rc; double t; - struct timeval tp1; + struct timespec tp1; /* Test below is ONLY for debugging */ if ((rc = pthread_rwlock_trywrlock(rwlock))) { if (rc == EBUSY) { |