tommieです。 (2013/04/10 12:44), Shigeki Ohtsu wrote: > 大津です。 > > > まだ worker 内の sleep(1) に依存した実装になってますよね。 > (sleep(1) を外すと uv_async_send() が正常に動作しなくなる)
sleep()なしでも正しく動くように直しました。 だいぶゴテゴテになってしまいました。w https://gist.github.com/open-tommie/5342559 > これ、 sleep(1) を入れないと、イベントループが io poll で call back を処 > 理する前に各スレッドが async fd を上書きしちゃうからだと思います。(ちゃ > んと調べてないですが) uv_async_tはスレッド毎に必要なようです。 1つのuv_async_tを重複して使っていたのが原因でした。 スレッド毎に用意したら正しく動きました。 > 先に述べたよう uv_check() を使った実装だとこんな感じになります。 > (これは worker 内に sleep(1) は必要ないです) > > https://gist.github.com/shigeki/5351299 uv_check()を使ったほうがスッキリしてますね。 uv_check()は イベント処理毎に設定した関数を呼び出すのですね、なるほど。 全イベント処理毎に呼ばれるのでしょうか? アドオン化して、Node.jsコールバック関数も呼び出せました。 多少、整理して近いうちに投稿します。 -- --- このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。 このグループから退会し、メールの受信を停止するには、nodejs_jp+unsubscr...@googlegroups.com にメールを送信します。 その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。