위키득계정 ↗
기술

libevent

libevent기술
주요 역할
이벤트 통지와 콜백 실행
입력 사건
파일 서술자와 타이머 및 신호
추상화 단위
event_base
추가 기능
버퍼 입출력과 프로토콜 지원
libevent는 파일 서술자의 입출력 사건과 시간 만료 및 신호에 따라 콜백을 실행하는 라이브러리다. 운영체제마다 다른 이벤트 통지 기능을 공통 API로 제공해 이벤트 기반 네트워크 프로그램의 루프를 구성한다.

사건과 처리 함수의 연결

파일 서술자에 특정 사건이 발생하거나 지정한 시간이 지나면 등록한 콜백을 실행한다. 신호와 반복적인 시간 만료도 다룬다. 응용은 이벤트 루프를 실행하면서 관측할 사건을 동적으로 추가하거나 제거할 수 있다.

운영체제 차이의 추상화

epoll과 kqueue 및 poll과 select 같은 통지 체계를 공통 인터페이스 뒤에 둔다. 응용의 이벤트 API와 실제 통지 방식이 분리되므로 운영체제에 맞는 구현을 이용할 수 있다. 여러 스레드에서는 event_base를 분리하거나 공유 접근에 잠금을 사용하는 구성이 가능하다.

버퍼와 네트워크 기능

소켓과 필터 및 속도 제한과 암호화 연결 등을 다루는 버퍼 입출력 기능을 제공한다. DNS와 HTTP 및 간단한 RPC 지원도 포함한다. 기본 사건 통지 위에 네트워크 응용에서 자주 필요한 처리 기능을 쌓는 구조다.

관련 문서

libuv / API / 네트워크 / HTTP / 도메인 네임 시스템 / 비동기 프로그래밍