pthreads: pthread_cond_signal () z sekcji krytycznej
Mam następujący fragment kodu w wątku A, który blokuje używaniepthread_cond_wait()
pthread_mutex_lock(&my_lock);
if ( false == testCondition )
pthread_cond_wait(&my_wait,&my_lock);
pthread_mutex_unlock(&my_lock);
Mam następujący fragment kodu w wątku B, który sygnalizuje wątek A
pthread_mutex_lock(&my_lock);
testCondition = true;
pthread_cond_signal(&my_wait);
pthread_mutex_unlock(&my_lock);
Czy pod warunkiem, że nie ma innych wątków, czy miałoby to znaczenie, jeślipthread_cond_signal(&my_wait)
jest usuwany z bloku sekcji krytycznej, jak pokazano poniżej?
pthread_mutex_lock(&my_lock);
testCondition = true;
pthread_mutex_unlock(&my_lock);
pthread_cond_signal(&my_wait);