1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* Test program that triggers mutex reinitialization. */ 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define _GNU_SOURCE 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <assert.h> 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <pthread.h> 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdio.h> 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdlib.h> 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main(int argc, char** argv) 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutex_t m; 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutexattr_t attr; 16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutexattr_init(&attr); 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL); 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutex_init(&m, &attr); 20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutexattr_destroy(&attr); 21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutex_lock(&m); 22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutex_unlock(&m); 23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutexattr_init(&attr); 25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutex_init(&m, &attr); 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutexattr_destroy(&attr); 28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutex_lock(&m); 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutex_unlock(&m); 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown pthread_mutex_destroy(&m); 32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown fprintf(stderr, "Done.\n"); 34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown return 0; 36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 37