каково точное значение EV_TIMEOUT в libevent?

В книге Programming with Libevent сказано:

EV_TIMEOUT

Этот флаг указывает на событие, которое становится активным по истечении времени ожидания.

Насколько мне известно, событие, связанное с сокетом fd, станет активным, когда событие сетевого ввода-вывода будет готово, о чем уведомляется select/epoll/poll/kqueue.

Если EV_TIMEOUT сделать событие активным, в то время как сокет fd не готов, будет ли event_base выполнять обратный вызов?

Или сокет fd готов, а EV_TIMEOUT нет, будет ли event_base выполнять обратный вызов?


person linrongbin    schedule 05.12.2016    source источник


Ответы (1)


О, я понимаю.

void (*event_callback_fn)(evutil_socket_t, short, void *);

Флаг short сообщит обратному вызову, что именно произошло.

Когда тайм-аут, short & EV_TIMEOUT == true, когда сокет готов, short & (EV_READ | EV_WRITE) == true.

person linrongbin    schedule 05.12.2016