libeventは、非同期イベント通知を提供するソフトウェアライブラリです。libevent APIは、ファイルディスクリプタ上で特定のイベントが発生したとき、またはタイムアウトに達したときにコールバック関数を実行するメカニズムを提供します。libeventは、シグナルや通常のタイムアウトによってトリガーされるコールバックもサポートしています。
libeventは、イベント駆動型ネットワークサーバーに見られるイベントループを置き換えることを目的としています。アプリケーションは、イベントループを変更することなく、libeventを呼び出すだけで、イベントを動的に追加または削除できます。event_dispatch()
現在、libevent は/dev/poll、、、kqueue(2)POSIX select(2)、Windows IOCP、、poll(2)およびSolarisイベント ポートepoll(7)をサポートしています。また、リアルタイム シグナルの実験的なサポートも提供しています。公開されているイベント API は、サポートされているすべてのプラットフォームで統一されています。その結果、libevent は移植性の高いアプリケーション開発を可能にし、「オペレーティングシステム上で利用可能な最もスケーラブルなイベント通知メカニズム」を提供します。 [ 3 ]
libevent はシグナルにコールバックを使用することで、「安全な」シグナルハンドラを作成することを可能にします。これは、ユーザーが提供したシグナル処理コードがシグナルのコンテキストで実行されないためです。
libevent はNiels Provosによって作成され、主に Azat Khuzhin によってメンテナンスされています。BSDライセンスの下でリリースされています。[ 4 ]
libevent を活用している注目すべきアプリケーションには、次のようなものがあります。[ 5 ]
{{cite web}}: CS1 maint: url-status (リンク)