Esempio n. 1
0
 ShutdownPipe(AsyncMcServer& server,
              folly::EventBase& evb)
     : folly::EventHandler(&evb),
       server_(server) {
   fd_ = eventfd(0, 0);
   CHECK(fd_ != -1);
   changeHandlerFD(fd_);
   registerHandler(EV_READ);
 }
Esempio n. 2
0
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);
}
Esempio n. 3
0
void AsyncPipeReader::close() {
  unregisterHandler();
  if (fd_ != NetworkSocket()) {
    changeHandlerFD(NetworkSocket());

    if (closeCb_) {
      closeCb_(fd_);
    } else {
      netops::close(fd_);
    }
    fd_ = NetworkSocket();
  }
}
Esempio n. 4
0
void AsyncPipeReader::close() {
  unregisterHandler();
  if (fd_ >= 0) {
    changeHandlerFD(-1);

    if (closeCb_) {
      closeCb_(fd_);
    } else {
      ::close(fd_);
    }
    fd_ = -1;
  }
}
Esempio n. 5
0
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();
  }
}
Esempio n. 6
0
void TunIntf::start() {
  if (fd_ != -1 && !isHandlerRegistered()) {
    changeHandlerFD(fd_);
    registerHandler(TEventHandler::READ|TEventHandler::PERSIST);
  }
}