pthreads: pthread_cond_signal () innerhalb des kritischen Abschnitts

Ich habe das folgende Stück Code in Thread A, der mit blockiertpthread_cond_wait()

pthread_mutex_lock(&my_lock);     
if ( false == testCondition )        
    pthread_cond_wait(&my_wait,&my_lock); 
pthread_mutex_unlock(&my_lock);

Ich habe den folgenden Code in Thread B, der Thread A signalisiert

pthread_mutex_lock(&my_lock);  
testCondition = true;
pthread_cond_signal(&my_wait);
pthread_mutex_unlock(&my_lock);

Sofern es keine anderen Threads gibt, würde es einen Unterschied machen, wennpthread_cond_signal(&my_wait) wird wie unten gezeigt aus dem Block des kritischen Abschnitts verschoben?

pthread_mutex_lock(&my_lock);  
testCondition = true;
pthread_mutex_unlock(&my_lock);
pthread_cond_signal(&my_wait);

Antworten auf die Frage(5)

Ihre Antwort auf die Frage