libevent
libevent 学习记录
spch2008
github.com/spch2008
展开
-
libevent-1.4.so.2动态链接库加载失败
问题描述: ./server: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory 问题原因: LD_DEBUG=libs ./server -v > log 2>&1 在所有搜寻路径中,都无法原创 2016-05-09 13:52:10 · 3412 阅读 · 0 评论 -
libevent事件循环
1. 纠正时间,因为用户可能手动更改本地时间,这样导致时间不准确,超时事件受到影响。 2. 获取堆顶元素超时时间,与当前时间相减,得到差值,该差值传给epoll,让其最晚在差值时间后返回。如果,当前堆顶已经超时了,则直接返回0,让epoll_wait 立即返回。 3. 记录时间点1, tv_cache-> event_tv 4. epoll_wait等 5. 记录时间点 2 系统调用获取原创 2014-11-13 10:34:40 · 1264 阅读 · 0 评论 -
libevent示例代码
仅仅演示libevent的使用过程,不去考虑原创 2014-11-13 10:32:50 · 1590 阅读 · 0 评论 -
libevent定时器机制
超时机制: 时间是时间点,比如8:40:35超时,那么获得当前时间,如果小于该时间,则视为超时。 添加超时事件: 添加超时事件的时候,添加相对时间,比如8s后超时,在内部会进行处理,即取得当前时间,加上超时时间,得到超时时间点。 struct timeval tv; tv.tv_sec = 10; tv.tv_usec = 0; evtimer_set(&ev原创 2014-11-13 10:30:31 · 983 阅读 · 0 评论 -
libevent信号机制
结构体 struct evsignal_info { struct event ev_signal; /* 整体作为一个事件,加入epoll中 */ int ev_signal_pair[2]; /* 信号套接字 */ int ev_signal_added; /* 是否加入epoll */ volatile sig_atomic_t evsignal原创 2014-11-13 10:29:46 · 1393 阅读 · 0 评论 -
libevent主要数据结构
1. 通用结构体 #define TAILQ_ENTRY(type) \ struct { \ struct type *tqe_next; /* next element */ \ struct type **tqe_prev; /* previous element */ \原创 2014-11-13 10:28:42 · 1040 阅读 · 0 评论 -
libevent开篇
libevent是一个基于事件的网络库,用于管理原创 2014-11-13 10:28:19 · 954 阅读 · 0 评论