Использование EVLOOP_NONBLOCK в libevent

В libevent Я добавил следующий код:

while (run) {
event_base_loop(base, EVLOOP_NONBLOCK | EVLOOP_ONCE);
}

Если я сравню это со следующим:

event_base_dispatch(base);

Эти два утверждения равны?

0

Решение

Нет, event_base_dispatch(base) вызов эквивалентен event_base_loop(base, 0)Это означает, что он не остановится после первой серии событий (например, event_base_loop с EVLOOP_ONCE нет) и не возвращаются немедленно, если событие не готово (например, event_base_loop с EVLOOP_NONBLOCK делает).

Возможно, вы захотите прочесть замечательную книгу о свободе, написанную Ником Мэтьюсоном: http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]