決定的な答えを見つけることができなかったので、これがその場所です。
WindowsEnterCriticalSection
は、同じスレッドで複数回ロックできるように機能します。解放されるように、正確な回数だけロックを解除する必要があります。
Linuxに相当するものは何ですか? pthread ミューテックスは同じように機能しますか? それともマルチロック、シングルアンロック...
boost::recursive_mutex を使用すると、オペレーティング システムについて考える必要がなくなります。
属性 PTHREAD_MUTEX_RECURSIVE_NP を使用して、再帰モードで pthread ミューテックスを使用できます。
同等の Linux については、この記事で説明しています (「リスト 2. 同等の Linux コード」を参照)。
http://www.ibm.com/developerworks/linux/library/l-ipc2lin3/index.html。
ADONTEC の W2LPL ライブラリ ( http://adontec.com/windows-to-linux-port-library.htm ) を使用してみてはいかがでしょうか。探しているものがほぼすべて揃っています。
ミューテックスを使用できます。これを見てください http://en.wikipedia.org/wiki/Critical_section
必ず再帰モードにしてください。
次のリンクでは、pthreads でこれを行う方法について説明しています: http://www.ibm.com/developerworks/linux/library/l-ipc2lin3/index.html