在Programming with Libevent的书中,它说:
EV_TIMEOUT
此标志表示超时后变为活动的事件。
当网络IO事件准备就绪时,与套接字fd关联的事件AFAIK将变为活动状态,由select / epoll / poll / kqueue通知。
如果EV_TIMEOUT
使一个事件处于活动状态,而套接字fd没有准备好,则event_base会进行回调吗?
或者套接字fd已准备好,而EV_TIMEOUT
不是,event_base会进行回调吗?
哦,我懂。
void (*event_callback_fn)(evutil_socket_t, short, void *);
short
旗帜将告诉回调究竟发生了什么。
当超时时,short & EV_TIMEOUT == true
,当套接字准备就绪时,short & (EV_READ | EV_WRITE) == true
。