Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/testsuite/winsup.api/pthread/mutex6d.c')
-rw-r--r--winsup/testsuite/winsup.api/pthread/mutex6d.c71
1 files changed, 0 insertions, 71 deletions
diff --git a/winsup/testsuite/winsup.api/pthread/mutex6d.c b/winsup/testsuite/winsup.api/pthread/mutex6d.c
deleted file mode 100644
index f39c1ac53..000000000
--- a/winsup/testsuite/winsup.api/pthread/mutex6d.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * mutex6d.c
- *
- * Tests PTHREAD_MUTEX_DEFAULT mutex type.
- * Thread locks mutex twice (recursive lock).
- * The thread should deadlock.
- *
- * Depends on API functions:
- * pthread_create()
- * pthread_mutexattr_init()
- * pthread_mutexattr_settype()
- * pthread_mutexattr_gettype()
- * pthread_mutex_init()
- * pthread_mutex_lock()
- * pthread_mutex_unlock()
- */
-
-#include "test.h"
-
-static int lockCount = 0;
-
-static pthread_mutex_t mutex;
-static pthread_mutexattr_t mxAttr;
-
-void * locker(void * arg)
-{
- assert(pthread_mutex_lock(&mutex) == 0);
- lockCount++;
-
- /* Should wait here (deadlocked) */
- assert(pthread_mutex_lock(&mutex) == 0);
- lockCount++;
- assert(pthread_mutex_unlock(&mutex) == 0);
-
- return (void *) 555;
-}
-
-int
-main()
-{
- pthread_t t;
- int mxType = -1;
-
- assert(pthread_mutexattr_init(&mxAttr) == 0);
- assert(pthread_mutexattr_settype(&mxAttr, PTHREAD_MUTEX_DEFAULT) == 0);
- assert(pthread_mutexattr_gettype(&mxAttr, &mxType) == 0);
- assert(mxType == PTHREAD_MUTEX_NORMAL);
-
- assert(pthread_mutex_init(&mutex, &mxAttr) == 0);
-
- assert(pthread_create(&t, NULL, locker, NULL) == 0);
-
- Sleep(1000);
-
- assert(lockCount == 1);
-
- /*
- * Should succeed even though we don't own the lock
- * because FAST mutexes don't check ownership.
- */
- assert(pthread_mutex_unlock(&mutex) == 0);
-
- Sleep (1000);
-
- assert(lockCount == 2);
-
- exit(0);
-
- /* Never reached */
- return 0;
-}