From 5ba92997dbb29abf9a102711533e1fb73424d956 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 3 Jul 2006 21:19:13 +0000 Subject: [PATCH] Shorter sleep in tstflock --- util/tstflock.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/util/tstflock.c b/util/tstflock.c index 28d9548..4abcdbf 100644 --- a/util/tstflock.c +++ b/util/tstflock.c @@ -2,13 +2,15 @@ * Copyright (C) 1995-2006, Index Data ApS * See the file LICENSE for details. * - * $Id: tstflock.c,v 1.12 2006-06-30 15:10:29 adam Exp $ + * $Id: tstflock.c,v 1.13 2006-07-03 21:19:13 adam Exp $ */ #include #include #include #include +#include +#include #if HAVE_SYS_STAT_H #include @@ -41,6 +43,11 @@ static char *seqp = 0; #define NUM_THREADS 100 +#if YAZ_POSIX_THREADS +pthread_cond_t sleep_cond = PTHREAD_COND_INITIALIZER; +pthread_mutex_t sleep_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif + int test_fd = 0; static void small_sleep() @@ -48,7 +55,22 @@ static void small_sleep() #ifdef WIN32 Sleep(50); #else - sleep(1); +#if YAZ_POSIX_THREADS + struct timespec abstime; + struct timeval now; + + gettimeofday(&now, 0); + abstime.tv_sec = now.tv_sec; + abstime.tv_nsec = 1000000 + now.tv_usec * 1000; + if (abstime.tv_nsec > 1000000000) /* 1s = 1e9 ns */ + { + abstime.tv_nsec -= 1000000000; + abstime.tv_sec++; + } + pthread_mutex_lock(&sleep_mutex); + pthread_cond_timedwait(&sleep_cond, &sleep_mutex, &abstime); + pthread_mutex_unlock(&sleep_mutex); +#endif #endif } -- 1.7.10.4