マルチスレッド関係のバグのエロい事ったらもう

今日のは難関だった。デバグに6時間もかかった。

なんか、受信用スレッドと送信用スレッドを分けてるわけですが、送信用スレッドでLogoutメッセージを送信したあとに受信用スレッドを閉じてたんですよ。

そしたらたまーにサーバー側がLogoutを受け取ってコネクションを閉じてから、クライアント側の受信スレッドが受信待ち開始してエラーはいて、それを修復しようとしてサーバーに再ログインしだす。

で、メインスレッドはそんなこと知らずにLogoutしたから次の鯖に普通にLoginして、多重ログインするというバグだったわけですよ。

なんていうか、受信用スレッドを閉じてからLogout送れば直ったんですけどね。orz...

ステータス変更の順番がちょっと前後するだけで、まったく意味不明な現象が起きるもんだから、問題特定が大変すぎる。なれるのかなぁこれ。マルチスレッドはまだまだ慣れない事が一杯だ。

      • -

ふう、なんか知らんがモチベーションというかテンションが上がってきた。

マゾヒスティックなぐらいにバグ取りしている。なんかいい加減疲れてきたので今日はもう寝よう。それがいい。