umegaya/yue — pull request #2 by umegaya (2012-11-13 08:16:00+00:00)
Title: commit new implementation of yue

追加で実装していった機能がかなり増えたせいで、最初の設計では統一した処理を行うことができなくなったので完全にリデザインを行った。主な変更点は

イベントハンドラを設定したり、rpcを行うことができるオブジェクトはすべてemittableというオブジェクトから派生されて作られるようになった

それにともないmulti thread環境から安全に利用できるようにemittableに参照カウントを実装し、参照している処理がなくなった時点で安全にメモリを解放できるようにした

できる限り多くの処理をluaで書くようにした。

APIの冗長なグループ化をやめ、yue.listenとか、yue.openのように浅い階層でほとんどのオブジェクトを生成できるようにした。また、socketのステート変更やtimerのチックなど、全部別々のイベントハンドリングを行っていたのをemittableで統一したイベント通知処理に置き換えた。

まだ全部のテストが通った訳ではなく、また新しい機能を実装する必要も出てきているのでここから本気出す。