<   2006年 06月 ( 1 )   > この月の画像一覧

e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

fopen() がフリーズ

何故か、デバッグコードに含まれる fopen 関数がフリーズ(デッドロック?)してしまいます。
原因は、まだ分かっていません。

マルチスレッドで、スレッド中に書いた fopen が内部の _lock_file2 という関数の中で止まってしまうのです。どうも、スレッドの中での2回目の fopen で止まってしまうようです。
_lock_file2 の中には、クリティカルセクションによる排他制御が書かれているので、それが原因かどうか調査中です。

テストコードも動かない。。。(;_;)
動かないテストコードは、これ。
FILE *f = fopen("c:\\test.txt", "wb");
if(f) fclose(f);

どう考えても、動くはずなのに、、、

--追記
2回目ではなく、ある時点ではOKだけど、それ以降はNGになるみたい。
途中の処理で何かを破壊してしまっているのだろうか。
また、フリーズしたまましばらく待つと、Access Violation で落ちてしまいます。
ますます途中の処理が怪しい。。。

--追記
ある処理を実行した後、どうやらメモリが破壊されているのは分かったんだけど、
原因が分からない。。。
今日は解決を断念しました。
[PR]
by isoq | 2006-06-15 13:28 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇