すべてGCが原因
新年早々のぐち。
ポエニーのタスクがバグる理由がついにわかりました。
GCです。フルコレクトが走る前にすべてのスレッドを止めて、走りきったらすべてのスレッドを再開させます。というと一見まともな動きに聞こえますが、こっちがイベント待ち行列にいれて止めているスレッドを勝手に再開させるので、待ち行列内がグチグチになるんだよ!!!
と。そういう話。
つまりスレッドはポーズさせておいても勝手にレジュームすることがよくあるので、そこまで考慮してスレッドをつかうべしと。
とりあえず、ポーズとレジュームをオーバーライドして云々したらよしかな。
- 2006.1.3 追記
OK, ポーズカウンタつけて、2度ポーズかけたスレッドは2度レジュームしないと再開しないといった感じにしたらうまくいったような予感がする。