Update of /cvsroot/ipbench/ipbench2/src/tests/cpu_target_lukem
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19834
Modified Files:
cpu_target_lukem.c
Log Message:
use a conditional variable to sleep on
Index: cpu_target_lukem.c
===================================================================
RCS file: /cvsroot/ipbench/ipbench2/src/tests/cpu_target_lukem/cpu_target_lukem.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** cpu_target_lukem.c 23 Feb 2005 05:56:13 -0000 1.9
--- cpu_target_lukem.c 23 Feb 2005 22:45:38 -0000 1.10
***************
*** 24,28 ****
static int calc = 1;
! volatile static int running = 1;
void *idle_thread(void *arg)
--- 24,29 ----
static int calc = 1;
! static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
! static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
void *idle_thread(void *arg)
***************
*** 107,110 ****
--- 108,114 ----
pthread_create(&ithr, NULL, idle_thread, NULL);
+ /* lock the mutex */
+ pthread_mutex_lock(&mutex);
+
return 0;
}
***************
*** 113,121 ****
cpu_target_lukem_start(struct timeval *start)
{
- int i;
gettimeofday(start, NULL);
dbprintf("Starting.\n");
! while (running);
! sleep(1);
dbprintf("Complete.\n");
return 0;
--- 117,126 ----
cpu_target_lukem_start(struct timeval *start)
{
gettimeofday(start, NULL);
dbprintf("Starting.\n");
!
! /* wait on the conditional */
! pthread_cond_wait(&cond, &mutex);
!
dbprintf("Complete.\n");
return 0;
***************
*** 127,131 ****
gettimeofday(stop, NULL);
calc = 0;
! running = 0;
dbprintf("Stopping.\n");
return 0;
--- 132,136 ----
gettimeofday(stop, NULL);
calc = 0;
! pthread_cond_signal(&cond);
dbprintf("Stopping.\n");
return 0;
|