昼休みにEbbのソースをちょこちょこと読んでみる。
大まかな処理の流れは以下の通り。
- Ebb::Serverをstartすると、FFI::server_listen_on_xxxでサーバソケットのイベントコールバックにebb.c#on_requestを登録
- サーバにリクエストがくるとon_requestがコールバックされる。acceptして、クライアントソケットのイベントコールバックにebb.c#on_readableを登録
- クライアントソケットが読み取り可能になると、on_readbleがコールバックしてむにゃむにゃむにゃ
- 以下、繰り返し
以下、雑感。
- ファイルが少なくて読み易し
- gotoをそれなりに活用しているソースは初めて見た
- GLibの関数はそれほど多くない。GLib無くても何とかならないかな?
帰ったら、もう少し詳しく読んでみよ。