Lo siento por mi inglés, soy ruso.Bloquear mutex en un hilo y desbloquearlo en el otro
¿Este código será correcto y portátil?
void* aThread(void*)
{
while(conditionA)
{
pthread_mutex_lock(mutex1);
//do something
pthread_mutex_unlock(mutex2);
}
}
void* bThread(void*)
{
while(conditionB)
{
pthread_mutex_lock(mutex2);
//do something
pthread_mutex_unlock(mutex1);
}
}
En realidad, en la aplicación objetivo Tengo tres hilo - dos para escribir una matriz y una para la lectura. Y lo necesito justo después de que uno de los subprocesos que cambia el tercer subproceso muestra los contenidos de la matriz.
Ok. Pero ¿qué hay de desbloquear mutex que se había bloqueado en otro hilo? ¿Comportamiento indefinido también? –
Como se dice: "si un hilo intenta desbloquear un mutex que no ha bloqueado ... UB" – user562374