stringtranslate.com

libevent

libevent — это программная библиотека , которая обеспечивает асинхронное уведомление о событиях. API libevent предоставляет механизм для выполнения функции обратного вызова , когда определенное событие происходит в файловом дескрипторе или после достижения тайм-аута . libevent также поддерживает обратные вызовы, запускаемые сигналами и обычными тайм-аутами.

libevent предназначен для замены цикла событий , который находится в сетевых серверах, управляемых событиями . Приложение может просто вызывать event_dispatch()и затем динамически добавлять или удалять события без необходимости изменять цикл событий.

В настоящее время libevent поддерживает /dev/poll, kqueue(2), POSIX select(2), Windows IOCP , и порты событий Solaris . Он также имеет экспериментальную поддержку сигналов реального времени. Представленный API событий является единым для всех поддерживаемых платформ. В результате libevent позволяет разрабатывать переносимыеpoll(2) приложения и предоставляет «наиболее масштабируемый механизм уведомления о событиях, доступный в операционной системе». [1]epoll(7)

Используя обратные вызовы для сигналов, libevent позволяет писать «безопасные» обработчики сигналов, поскольку ни один из предоставленных пользователем кодов обработки сигналов не выполняется в контексте сигнала .

libevent был создан Нильсом Провосом и поддерживается в основном Азатом Хужиным. Он выпущен под лицензией BSD . [3]

Известные приложения

Вот некоторые из примечательных приложений, использующих преимущества libevent:

Альтернативы

Основные выпуски версий

Ссылки

  1. ^ ab "libevent – ​​библиотека уведомлений о событиях". libevent.org . Получено 17 сентября 2021 г. .
  2. ^ "ЛИЦЕНЗИЯ". Github . Получено 30 августа 2019 г.
  3. ^ http://www.monkey.org/~provos/libevent/LICENSE Лицензия libevent
  4. ^ "third_party/libevent - chromium/chromium - Git в Google". chromium.googlesource.com . Получено 2023-04-30 .
  5. ^ "Установить". GitHub . Получено 2023-04-30 .
  6. ^ "tmux/README в Master - tmux/tmux - GitHub". GitHub .

Внешние ссылки