NetBSD におけるlibeventライブラリの統合
ストーリー by Oliver
ライブラリ化のメリットの典型 部門より
ライブラリ化のメリットの典型 部門より
BSD 曰く、 "
Niels Provosが
関係者にあてたメールによると、libeventライブラリをNetBSDのソースツリーへ統合することを予定しているとのことだ。libeventは入出力のイベントやタイマー、シグナルをコールバックによって通知する仕組みを実現する。
その結果、イベント通知及び処理は抽象化され、単純なAPIとして提供されることになる。
つまり、イベント駆動型ソフトのイベントループをlibeventが置き換えるわけである。またその処理において、libeventは自動的に最適なOSのプリミティブを選択するが、これはNetBSDにおいてはpoll(2)やkqueue(2)となる。libeventのコードは小さく、何年にもわたって多くの人々にイベント駆動型のソフトを実現する際に使われてきた。関連する情報は
このリンクにあるが、このページのスクリーンショットでkqueueとpollの性能比較を見ることができる(
プログラム例もある)。libeventで書かれたプログラムは自動的に最も速いプリミティブを使用するように出来ている。
一般にシグナルハンドラーは少数の安全な関数のみしか呼び出せないことが多い。しかしlibeventの場合、シグナルのコールバックによってプログラムはシグナルハンドラーの信頼性や安全性を心配することなく、全てのlibcの関数を呼び出すことができるのである。このような定型的なコードパターンを書きやすくしてくれるライブラリが充実するのは嬉しいことだと思う。"
NetBSD におけるlibeventライブラリの統合 More ログイン