17f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart/* Test program that triggers mutex reinitialization. */ 27f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 37f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 47f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart#define _GNU_SOURCE 57f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 67f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart#include <assert.h> 77f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart#include <pthread.h> 87f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart#include <stdio.h> 97f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart#include <stdlib.h> 107f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 117f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 127f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bartint main(int argc, char** argv) 137f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart{ 147f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutex_t m; 157f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutexattr_t attr; 167f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 177f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutexattr_init(&attr); 187f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL); 197f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutex_init(&m, &attr); 207f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutexattr_destroy(&attr); 217f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutex_lock(&m); 227f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutex_unlock(&m); 237f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 247f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutexattr_init(&attr); 257f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); 267f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutex_init(&m, &attr); 277f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutexattr_destroy(&attr); 287f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutex_lock(&m); 297f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutex_unlock(&m); 307f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 317f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart pthread_mutex_destroy(&m); 327f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 337f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart fprintf(stderr, "Done.\n"); 347f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart 357f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart return 0; 367f08c73f29b0bd8f23c1fc6d1e88ab44e2352160bart} 37