• 締切済み

クリティカルセクション中にreturnすると?

宜しくお願いします。 コーディングしていてクリティカルセクションについて、ふと疑問に思ったので質問させてください。 以下のように、クリティカルセクション内に条件Aであればreturnを返す関数(funcA)があり、 # クリティカルセクション内を通れるのは1スレッドのみ void funcA( void ){ EnterCriticalSection(&cs);    if( 条件A) {     return; } LeaveCriticalSection(&cs); } あるスレッドが条件Aを満たして LeaveCriticalSection()の前に関数を抜けた場合、他のスレッドはこのクリティカルセクション内を通ることができるのでしょうか? それともEnterCriticalSection()でずっと待ち続ける? もしくはそもそもビルドできない? 試してみればいいじゃないか。という突っ込みはなしで教えてくださる優しい方、 宜しくお願いいたします。

みんなの回答

  • hoge1229
  • ベストアンサー率29% (58/194)
回答No.1

ロックされ続けるだけなので、finallyでロックを解放すべきかと。

関連するQ&A