pthreadじゃだめで…
pthreadだとノートPCではうまくいくけど、デスクトップだとダメ…
何がダメって、プログレスバーを出している最中に本体の再描画処理でセグメントエラー…。
すっげぇ痛いバグ。
マルチスレッドは実は初めてプログラムするので…。
ゲーム会社時代はPS2とDSまででXbox360やPS3はやってない…。
この手のある環境だと起きて、こっちの環境だと起きないみたいなバグは本当につらい。
で、対処方法としてはまずじっくり根っ子から考える事。
いろいろ資料をあさってみたり限られた情報をたよりに考えたりすると、どうもXの方でスレッドセーフなアクセスをさせるためにgdkのライブラリを使うべきらしい。
ってことで、根っ子を変えて、pthreadでなくgdkのスレッドを使う事に。
で、なんとか形にはなってきた。
明日には完全にバグがとれそうかな。
だいぶプログラムを変えまくってしまったけど…。