2011-01-23 9 views

答えて

6

はい、ロックされたままになり、次にロックしようとするユーザーはロックできません。他の誰か(同じスレッド内の)が引き続き別の場所でロックを解除することができますが、取得と解放が分離されたときにプログラムの正しさを検証するのが難しく、結果的にエラーが発生しやすくなります。 には、このような問題やその他の微妙な問題の追跡に役立つツールが含まれています。 Cでは

++これはpthread_mutex_unlockがロックを取得したスレッドからそれに呼び出されるまでRAII

7

mutexがロックされたままを検討するのに最適な時間です。関数はそれとは何の関係もありません。

pthread_mutex_t wfg; 
... 
void razzle() 
{ 
    pthread_mutex_lock(&wfg); 
} 

void dazzle() 
{ 
    pthread_mutex_unlock(&wfg); 
} 

... 
razzle(); 
... do stuff ... 
dazzle(); 

これはうまくいくかもしれませんが、愚かでしょう。

関連する問題