blob: 1c72e819dfcc4a89a0904b0a500702189143d5b5 [file] [log] [blame]
/* Test program that triggers mutex reinitialization. */
#define _GNU_SOURCE
#include <assert.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
pthread_mutex_t m;
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
pthread_mutex_init(&m, &attr);
pthread_mutexattr_destroy(&attr);
pthread_mutex_lock(&m);
pthread_mutex_unlock(&m);
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&m, &attr);
pthread_mutexattr_destroy(&attr);
pthread_mutex_lock(&m);
pthread_mutex_unlock(&m);
pthread_mutex_destroy(&m);
fprintf(stderr, "Done.\n");
return 0;
}