ユーザ用ツール

サイト用ツール


Sidebar

os・kernel系:thread:pthread_cond_waitとsignalのデッドロック

http://blog.hifumi.info/2013/12/21/found-out-a-bug-of-ag/

  • おそらく、pthread_cond_signalpthread_cond_broadcastpthread_cond_waitと同一の条件変数のmutexでlockされていないと、pthread_cond_waitより先にpthread_cond_signalpthread_cond_broadcastが実行されてしまう事があって、その場合ブロック解除できずに待ち続けてしまうと思われる。
  • pthread_cond_signalpthread_cond_broadcastの実行時は、pthread_cond_waitが獲得するmutexと同一の条件変数でmutexを獲得すること。pthread_cond_waitが実行時は、獲得していたmutexを一旦unlockするので、pthread_cond_signalpthread_cond_broadcast側で同一条件のmutexが獲得可能となる。
os・kernel系/thread/pthread_cond_waitとsignalのデッドロック.txt · 最終更新: 2013/12/23 21:08 by matsumoto_r