diff options
Diffstat (limited to 'src/usr/testcore/lib/synctest.H')
-rw-r--r-- | src/usr/testcore/lib/synctest.H | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/usr/testcore/lib/synctest.H b/src/usr/testcore/lib/synctest.H index 5a53d2e0a..8e7619d11 100644 --- a/src/usr/testcore/lib/synctest.H +++ b/src/usr/testcore/lib/synctest.H @@ -9,6 +9,7 @@ #include <cxxtest/TestSuite.H> #include <sys/sync.h> #include <sys/task.h> +#include <sys/time.h> class SyncTest: public CxxTest::TestSuite { @@ -30,6 +31,20 @@ class SyncTest: public CxxTest::TestSuite TS_TRACE("ALL THREADS ENDED"); } + void testMutexDoubleWait() + { + mutex_init(&mutex); + barrier_init(&barrier, 3); + + mutex_lock(&mutex); + task_create(func2, this); + task_create(func2, this); + nanosleep(1,0); + mutex_unlock(&mutex); + barrier_wait(&barrier); + TS_TRACE("ALL THREADS ENDED"); + } + void testBarrier() { barrier_t barrier; |