#include <stdio.h>
#include <pthread.h>
#define NUM_THREADS 5
pthread_mutex_t mutex;
int global_counter = 0;
void *thread_routine( )
{
pthread_mutex_lock(&mutex);
pthread_mutex_lock(&mutex);
printf("am ajuns in zona protejata de mutex\n");
pthread_mutex_unlock(&mutex);
pthread_mutex_unlock(&mutex);
}
int main(void) {
int i;
pthread_t tids[NUM_THREADS];
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&mutex, &attr);
pthread_mutexattr_destroy(&attr);
for (i = 0; i < NUM_THREADS; i++)
pthread_create(&tids[i], NULL, thread_routine, (void *) i);
for (i = 0; i < NUM_THREADS; i++)
pthread_join(tids[i], NULL);
pthread_mutex_destroy(&mutex);
return 0;
}