salve a tutti, ho fatto un programma con thread POSIX ma non so perchè anche usando il MUTEX credo mi vadi in deadlock, qualcuno ha riscontrato un errore?
codice:
#include<iostream>
#include<pthread.h>
using namespace std;

int valore1=100;
pthread_mutex_t blocco;


void*funzione(void*arg)
{
	pthread_mutex_lock(&blocco);	
	valore1=valore1-50;
	cout<<valore1;
	pthread_mutex_unlock(&blocco);
}
void*funzione2(void*arg)
{
	pthread_mutex_lock(&blocco);	
	valore1=valore1-50;
	cout<<valore1;
	pthread_mutex_unlock(&blocco);
}

int main(void)
{
	pthread_t t1;
	pthread_t t2;

	

	pthread_mutex_init(&blocco,NULL);
	pthread_create(&t1,NULL,&funzione,NULL);
	pthread_create(&t2,NULL,&funzione2,NULL);

	pthread_join(t1,NULL);
	pthread_join(t2,NULL);
	


	return 0;
}

jonnykaraoke è offline   	Rispondi citando il messaggio o parte di esso