void EventHandler::changeHandlerFD(int fd) { ensureNotRegistered(__func__); // event_set() resets event_base.ev_base, so manually restore it afterwards struct event_base* evb = event_.ev_base; folly_event_set(&event_, fd, 0, &EventHandler::libeventCallback, this); event_.ev_base = evb; // don't use event_base_set(), since evb may be nullptr }
AsyncTimeout::AsyncTimeout(EventBase* eventBase, InternalEnum internal) : timeoutManager_(eventBase) { folly_event_set( &event_, -1, EV_TIMEOUT, &AsyncTimeout::libeventCallback, this); event_.ev_base = nullptr; timeoutManager_->attachTimeoutManager(this, internal); }
AsyncTimeout::AsyncTimeout(TimeoutManager* timeoutManager) : timeoutManager_(timeoutManager) { folly_event_set( &event_, -1, EV_TIMEOUT, &AsyncTimeout::libeventCallback, this); event_.ev_base = nullptr; timeoutManager_->attachTimeoutManager( this, TimeoutManager::InternalEnum::NORMAL); }
EventHandler::EventHandler(EventBase* eventBase, int fd) { folly_event_set(&event_, fd, 0, &EventHandler::libeventCallback, this); if (eventBase != nullptr) { setEventBase(eventBase); } else { // Callers must set the EventBase and fd before using this timeout. // Set event_->ev_base to nullptr to ensure that this happens. // (otherwise libevent will initialize it to the "default" event_base) event_.ev_base = nullptr; eventBase_ = nullptr; } }
void EventHandler::initHandler(EventBase* eventBase, int fd) { ensureNotRegistered(__func__); folly_event_set(&event_, fd, 0, &EventHandler::libeventCallback, this); setEventBase(eventBase); }
AsyncTimeout::AsyncTimeout() : timeoutManager_(nullptr) { folly_event_set( &event_, -1, EV_TIMEOUT, &AsyncTimeout::libeventCallback, this); event_.ev_base = nullptr; }