Libevent

Libevent

libevent is an asynchronous event notification software library.

The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.

libevent is meant to replace the event loop found in event-driven network servers. An application just needs to call event_dispatch() and then add or remove events dynamically without having to change the event loop.

Currently, libevent supports /dev/poll, kqueue(2), select(2), poll(2), epoll(4) and Solaris's event ports. It also has experimental support for real-time signals. The internal event mechanism is completely independent of the exposed event API, and a simple update of libevent can provide new functionality without having to redesign the applications. As a result, libevent allows for portable application development and provides the most scalable event notification mechanism available on an operating system.

Using callbacks on signals, libevent makes it easy to write secure signal handlers as none of the user supplied signal handling code runs in the signal's context.

Libevent has been developed by Niels Provos and released under a permissive free software licence.

Major version releases

*libevent 1.4 was released on November 11, 2007.
*libevent 1.3 was released on February 15, 2007.
*libevent 1.2 was released on October 15, 2006.
*libevent 1.1 was released on May 14, 2005.

External links

* [http://www.monkey.org/~provos/libevent/ libevent web page]
* [http://www.kegel.com/c10k.html Dan Kegel's "The C10K problem" web page]
* [http://liboop.ofb.net/ liboop - another asynchronous event notification library]
* [http://libev.schmorp.de/bench.html A benchmark by the libev author comparing libevent with libev, a similar library]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Libevent — Тип Библиотека для событийно ориентированного программирования Разработчик Nick Mathewson, Niels Provos Написана на Си Операционная система Linux, *BSD, Mac OS X, Solaris и Win …   Википедия

  • Signal-Slot-Konzept — Signale und Slots sind ein Konzept aus der Programmierung. Sie realisieren einen ereignisgesteuerten Programmfluss beziehungsweise eine ereignisgesteuerte Kommunikation zwischen Programmobjekten. Ursprünglich geprägt wurde der Begriff durch die… …   Deutsch Wikipedia

  • Observer pattern — The observer pattern (a subset of the publish/subscribe pattern) is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes,… …   Wikipedia

  • Transmission (BitTorrent client) — Infobox Software name = Transmission caption = Transmission running under Mac OS X 10.5 developer = Transmission Project latest release version = 1.34 (6770) latest release date = release date and age|2008|09|17 operating system = Mac OS X, Unix… …   Wikipedia

  • Событийно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная …   Википедия

  • Callback (программирование) — У этого термина существуют и другие значения, см. Callback. Callback (англ. call  вызов, англ. back  обратный) или функция обратного вызова в программировании  передача исполняемого кода в качестве одного из параметров… …   Википедия

  • Kqueue — это масштабируемый интерфейс уведомления о событиях. Впервые появился во FreeBSD 4.1[1] и на данный момент присутствует практически во всех BSD системах. Kqueue позволяет пользователям получать уведомления о событиях на указанные цели очень… …   Википедия

  • Matplotlib — Пример работы matplotlib Тип библиотека языка Python …   Википедия

  • Niels Provos — is a researcher in the areas of secure systems, malware[1] and cryptography. He is currently a Principal Software Engineer at Google.[2] He received his PhD in Computer Science from the University of Michigan.[3] He is the author of numerous… …   Wikipedia

  • Node.js — Original author(s) Ryan Lienhart Dahl Developer(s) Node.js Developers …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”