ShutdownPipe(AsyncMcServer& server, folly::EventBase& evb) : folly::EventHandler(&evb), server_(server) { fd_ = eventfd(0, 0); CHECK(fd_ != -1); changeHandlerFD(fd_); registerHandler(EV_READ); }
NetlinkPoller::NetlinkPoller( folly::EventBase* eb, int fd, struct nl_cache_mngr* manager) : folly::EventHandler(eb, fd), manager_(manager) { DCHECK(eb) << "NULL pointer to EventBase"; if (fd == -1) { int mngrFd = nl_cache_mngr_get_fd(manager); changeHandlerFD(mngrFd); } registerHandler(folly::EventHandler::READ | folly::EventHandler::PERSIST); }
void AsyncPipeReader::close() { unregisterHandler(); if (fd_ != NetworkSocket()) { changeHandlerFD(NetworkSocket()); if (closeCb_) { closeCb_(fd_); } else { netops::close(fd_); } fd_ = NetworkSocket(); } }
void AsyncPipeReader::close() { unregisterHandler(); if (fd_ >= 0) { changeHandlerFD(-1); if (closeCb_) { closeCb_(fd_); } else { ::close(fd_); } fd_ = -1; } }
void AsyncPipeWriter::closeNow() { VLOG(5) << "close now"; if (!queue_.empty()) { failAllWrites(AsyncSocketException( AsyncSocketException::NOT_OPEN, "closed with pending writes")); } if (fd_ != NetworkSocket()) { unregisterHandler(); changeHandlerFD(NetworkSocket()); if (closeCb_) { closeCb_(fd_); } else { netops::close(fd_); } fd_ = NetworkSocket(); } }
void TunIntf::start() { if (fd_ != -1 && !isHandlerRegistered()) { changeHandlerFD(fd_); registerHandler(TEventHandler::READ|TEventHandler::PERSIST); } }