ページ

2007-09-28

デッドロック

WifiInfoは WM_TODAYCUSTOM_QUERYREFRESHCACHEメッセージが来る度に無線LANの状態を取得しています。
画面の再描画は無線LANの状態が変化したときだけなのですが rlTodayと併用したときの画面のチラつきが気になったので、 少しでも負荷を下げるために無線LANの監視をスレッド化してみようと思いました。
 
IOCTL_NDISUIO_REQUEST_NOTIFICATIONを使って 接続・切断を検出しようとしたのですが、 テスト版を職場の PCでビルドして動かしてみたところ見事にアドエスが動かなくなってしまいました。
たぶん WaitForMultipleObjectsあたりでで止まっているみたいです。
 
これが有名なデッドロックという奴でしょうか。
テストもせずに INFINITE指定は無謀でした。
 
問題はここから。
動かないアドエスはフルリセットするしかないのですが、フルリセットするためには ACアダプタが必要です。
 
ACアダプタは自宅なので帰宅すればフルリセットすることができます。
ところが自宅のPCは故障中、電話帳等を戻すには職場のPCを借りるしか手はありません。
 
おお、ここにもデッドロックが(笑
 
とりあえず週末はアドエス単体でできるところまで復旧作業でしょうか。
 

0 件のコメント: