diff options
author | rpj <rpj> | 2001-05-31 02:05:25 +0000 |
---|---|---|
committer | rpj <rpj> | 2001-05-31 02:05:25 +0000 |
commit | a8744086b476e4007c1d8fc0fae84ecfcade99ba (patch) | |
tree | 69bd3bd925233e00d960f3de5a5f3953db235da7 /tests/mutex1r.c | |
parent | e121b938c9f012958196a3141f04a3fd4f58bdb9 (diff) |
New test.
Diffstat (limited to 'tests/mutex1r.c')
-rw-r--r-- | tests/mutex1r.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/mutex1r.c b/tests/mutex1r.c new file mode 100644 index 0000000..b5131bb --- /dev/null +++ b/tests/mutex1r.c @@ -0,0 +1,42 @@ +/* + * mutex1r.c + * + * As for mutex1.c but with type set to PTHREAD_MUTEX_RECURSIVE. + * + * Create a simple mutex object, lock it, unlock it, then destroy it. + * This is the simplest test of the pthread mutex family that we can do. + * + * Depends on API functions: + * pthread_mutexattr_settype() + * pthread_mutex_init() + * pthread_mutex_destroy() + */ + +#include "test.h" + +pthread_mutex_t mutex = NULL; +pthread_mutexattr_t mxAttr; + +int +main() +{ + assert(pthread_mutexattr_init(&mxAttr) == 0); + + assert(pthread_mutexattr_settype(&mxAttr, PTHREAD_MUTEX_RECURSIVE) == 0); + + assert(mutex == NULL); + + assert(pthread_mutex_init(&mutex, &mxAttr) == 0); + + assert(mutex != NULL); + + assert(pthread_mutex_lock(&mutex) == 0); + + assert(pthread_mutex_unlock(&mutex) == 0); + + assert(pthread_mutex_destroy(&mutex) == 0); + + assert(mutex == NULL); + + return 0; +} |