回答編集履歴
1
update
answer
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
条件変数(`pthread_cond_t`)の使い方を誤っています。
|
2
2
|
|
3
|
+
- メインスレッド→サブスレッドに通知する設計ですから、メインスレッド側がSignal、サブスレッド側がWaitする構造になるべきです。
|
3
|
-
`pthread_cond_wait(cv,m)`関数は、第2引数に指定したミューテックスのロックを保持した状態、つまり`pthread_mutex_lock(m)`~`pthread_mutex_unlock(m)`区間の中で呼び出す必要があります。
|
4
|
+
- `pthread_cond_wait(cv,m)`関数は、第2引数に指定したミューテックスのロックを保持した状態、つまり`pthread_mutex_lock(m)`~`pthread_mutex_unlock(m)`区間の中で呼び出す必要があります。
|
4
5
|
|
5
6
|
手前味噌ですが [条件変数 Step-by-Step入門](http://yohhoy.hatenablog.jp/entry/2014/09/23/193617) にて正しい使い方を解説しています。ご参考までに。
|