anago Linux 向けデバッグ

gdb で問題がありそうなところで止めてみたんだが、どうやら thread が終わるあたりでだめらしい。そもそも別 thread で GUI を書き換える処理近辺は wxMutexGuiEnter() と wxMutexGuiLeave() ではさむ必要があり、 wxWindow::Enable() を呼ぶときにはさんでいなかったのが問題らしい。

puppy では安定したし、vine ではそこそこ安定した。たぶん wxMutexGuiEnter() と wxMutexGuiLeave() の間で kill が発生した場合の Mutex の解除ができてない。

それに関するドキュメントに wxMutexGuixxxxx() はあまりよろしくないのでサンプル以外では使うなって書いてある。ってわかんねーよ! というわけで wxPostEvent() を使う方針に直すんだが... Vine でまったく安定しない。うーん。