• 追加された行はこの色です。
  • 削除された行はこの色です。
* zthread導入メモ [#jb7d0c98]
#contents

** なぜzthread? [#tad9120c]
SDLのスレッドでは機能不足なので
クロスプラットフォームでよさげなzthreadを採用。

** VCでビルド [#u53078a0]
src以下のcxxファイルをコンパイルするだけでおっけい。
もちろん、includeにパスははりましょう。
一カ所、通らなかったので修正。
src/win32/ThreadOps.cxx
 HINSTANCE hInst = ::GetModuleHandle("Kernel32.dll");
を
 HINSTANCE hInst = ::GetModuleHandle(L"Kernel32.dll");
に。

** XCodeでビルド [#a5b7192e]
やっぱりsrc以下のcxxファイルをコンパイルするだけでおっけい。
もちろん、includeにパスははりましょう。

** 共通して修正した箇所 [#fed1efc5]

** バグ修正 [#u93b662f]
ThreadQueueのデストラクトでTTSクラスにアクセスするんだけど、
両方とも無名空間の変数らしく、デストラクトの順番が不定。
で、TTSが先にデストラクトされてからThreadQueueのデストラクトが呼ばれて死んでしまう。
ので、デストラクトの順番が一定になるように修正。(r251)
** 感想 [#o7f45db2]
久しぶりにすばらしいライブラリに出会えた気がする。
ドキュメント、サンプルコード、コードの可読性、どれにおいても100点満点に近い。
Runnnableをdeleteするところだけいただけなかったかなぁ。
そういうポリシーならしょうがないけど。

** 後日談 [#y3dcfe1c]
ちょっとバグが多い気がする。信用できなくなってきた…。
ので,pthreadsを使うように変更しました。


    ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS