libevent 中 EV_TIMEOUT 的确切含义是什么?

what's the exactly meaning of EV_TIMEOUT in libevent?

Programming with Libevent书中,它说:

EV_TIMEOUT

This flag indicates an event that becomes active after a timeout elapses.

AFAIK,当网络 IO 事件准备就绪时,与 socket fd 关联的事件将变为活动状态,由 select/epoll/poll/kqueue 通知。

如果EV_TIMEOUT激活一个事件,而socket fd还没有准备好,event_base会回调吗?

或者socket 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