- 279 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 09:47:50 ]
- InterlockedIncrementはWin95以前だと正負と0の判定しかできないので>>255のようには使えないよね。
あと厳密に言えばの話だけど このスレの上のvolatile関連の議論からするとinitialized=1;の変更がキャッシュのせいで 他のスレッドに伝わらないかもしれない(規格的には)ので>>255のinitializedにはlock命令が必要だけど lock命令を追加しようとすると結局>>261みたいになってしまうんじゃないかな。 別に言わなくてもわかるだろうけど >>255は volatile static int lock = 0; >>272は volatile static CRITICAL_SECTION *p = NULL; if (p != q) { DeleteCriticalSection(q); free(q); }
|

|