FastCopyのダウンロードのログを見ると、なぜか、ソースコードも一緒にダウンロードする率がやや高い様子…ちょっと不思議。
ということで、開発環境について補足すると、VC4上で、Win32API(と標準のCランタイム(CRT))だけで作ってあります。
それから、最大3スレッドで動作しますが、(マルチスレッド内で、排他制御が必要なCRTは使っていないので)シングルスレッド用CRTを使っています。
v0.64を作成。Win32APIには条件変数が無いので、Win32 の Event primitive を使って、簡易版条件変数(Condition)クラスを実装したのだが、その中に間抜けなミスがあったので修正。
などと書いていた。
ちなみに、もし今回作った簡易条件変数を流用する場合があれば、以下にご注意:
今回は、1つのcvインスタンスしか使わないので、現在の実装で十分だったが、本当はクラスグローバルなメンバ(静的変数)として、未使用イベントハンドルのプールを管理して、インスタンス固有なメンバとして、使用中ハンドルリストを管理する形にしないと、イベントリソースをやたらと浪費することになるはず。
それから、ハンドルプールは配列ではなくリストにする必要あり。(今回は最大でも2スレッドしか使わないので配列で十分だったが…)
Categories
Android |
CeSleep |
comp_misc |
comp_tips |
fastcopy |
ipmsg |
mailman |
misc |
npop |
ScheEdit |
sigsleep |
tdiary |
thinkpad