bool VPoll::init() { if (!notifier_->ready()) { if (!notifier_->init()) { return false; } IOCallback cb([this](KMEvent ev, void*, size_t) { notifier_->onEvent(ev); }); registerFd(notifier_->getReadFD(), KUMA_EV_READ | KUMA_EV_ERROR, std::move(cb)); } return true; }
bool KQueue::init() { kqueue_fd_ = ::kqueue(); if(INVALID_FD == kqueue_fd_) { return false; } if (!notifier_->ready()) { if(!notifier_->init()) { return false; } IOCallback cb ([this](uint32_t ev) { notifier_->onEvent(ev); }); registerFd(notifier_->getReadFD(), KUMA_EV_READ|KUMA_EV_ERROR, std::move(cb)); } return true; }