今日はどっぷりプログラミングネタです。 あるお客さんむけにProDHCP構築のサポートをしていて、DHCP負荷テストツールをお渡しして検討をしていただいているのですが、動かしていると死ぬんだけど・・・とお問い合わせをいただき、よーく調べてみると・・・マルチスレッドに関する問題でした。DHCP負荷テストツールは自分たちのデバッグ用ツールとして作ったもので、製品並みの品質は元々考えていなかったとはいえ、恥ずかしいミスでした。。 問題の箇所は、ログファイルのローテーションでした。ざっくり書くと、 ファイルサイズチェック関数{ ・ファイルサイズをチェック ・指定サイズを超えていたら、ファイルポインタをクローズしてリネームしてから新しいファイルをオープン } という感じの機能です。ログ出力関数は、 ログ出力関数{ ・ファイルサイズチェック関数をコール ・ログ出力 } という感じです。 これがマルチス
