summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Guenthe <guenther@cvs.openbsd.org>2012-02-20 04:43:50 +0000
committerPhilip Guenthe <guenther@cvs.openbsd.org>2012-02-20 04:43:50 +0000
commit5968dfdc76712582661cd15eaa2c6f592407c569 (patch)
tree58a1c3ddb5bd78926057e2e8d0da9094514d6499
parentb3cb9a5bda3fef17dd3c98f1508457fbec58659f (diff)
Round-robin behavior isn't guaranteed by SCHED_OTHER and the kernel
doesn't have SCHED_FIFO or SCHED_RR support, so use sleep(1) to 'ensure' the second thread gets the lock when expected
-rw-r--r--regress/lib/libpthread/pthread_mutex/pthread_mutex.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/regress/lib/libpthread/pthread_mutex/pthread_mutex.c b/regress/lib/libpthread/pthread_mutex/pthread_mutex.c
index bae8f66c54e..a9de3c33e22 100644
--- a/regress/lib/libpthread/pthread_mutex/pthread_mutex.c
+++ b/regress/lib/libpthread/pthread_mutex/pthread_mutex.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pthread_mutex.c,v 1.7 2011/09/23 10:39:08 uwe Exp $ */
+/* $OpenBSD: pthread_mutex.c,v 1.8 2012/02/20 04:43:49 guenther Exp $ */
/*
* Copyright (c) 1993, 1994, 1995, 1996 by Chris Provenzano and contributors,
* proven@mit.edu All rights reserved.
@@ -45,6 +45,7 @@
#include <pthread_np.h>
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include "test.h"
int contention_variable;
@@ -75,7 +76,7 @@ test_contention_lock(pthread_mutex_t *mutex)
pthread_yield();
contention_variable = 1;
CHECKr(pthread_mutex_unlock(mutex));
- pthread_yield();
+ sleep(1);
CHECKr(pthread_mutex_lock(mutex));
ASSERT(contention_variable == 2);
CHECKr(pthread_mutex_unlock(mutex));