C++相談室 part145at TECHC++相談室 part145 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト100:デフォルトの名無しさん 19/09/17 23:22:32.62 /ZgM52F4.net >>98 CCriticalSection って書いてあるからCRITICAL_SECTIONの話では? 101:デフォルトの名無しさん 19/09/17 23:23:20.44 f5N3Fp86.net はい今日も完成品なしw 102:デフォルトの名無しさん 19/09/17 23:35:00.33 aYbHZN9j.net >>100 だからwindowsのCRITICAL_SECTIONなら通用する話だけど一般に通用する話じゃないってことだよ。 そういう環境だと >逆に同じスレッドでAの中からBを呼び出したとき、Bでロックしてしまったら >誰がロックを解除するんですか? 誰が解除するか心配する以前にBでロックを試みた時点で例外が飛んだりする。 103:デフォルトの名無しさん 19/09/17 23:35:10.09 5UuHJcwd.net recursive lock 104:デフォルトの名無しさん 19/09/17 23:40:43.31 ZBXs33c7.net >>87 CCriticalSection cs; void B_Core() { /*元々のB()でやろうとしていた処理・lockは抜き*/ } void A() { CSingleLock lock( &cs, TRUE ) ; ... B_Core(); // A()の中からはB()の代わりにこれを呼ぶ ... } void B() { CSingleLock lock( &cs, TRUE ); B_Core(); } もちろんB_Core()は外部から呼べないようにするべきである。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch