}
void RDMADispatcher::notify_pending_workers() {
- Mutex::Locker l(w_lock);
- if (pending_workers.empty())
- return ;
- pending_workers.front()->pass_wc(std::move(vector<ibv_wc>()));
- pending_workers.pop_front();
+ {
+ Mutex::Locker l(w_lock);
+ if (pending_workers.empty())
+ return ;
+ }
+ pending_workers.front()->notify_worker();
}
int RDMADispatcher::register_qp(QueuePair *qp, RDMAConnectedSocketImpl* csi)
}
}
-void RDMAWorker::notify()
+void RDMAWorker::notify_worker()
{
uint64_t i = 1;
assert(write(notify_fd, &i, sizeof(i)) == sizeof(i));
wc = std::move(v);
else
wc.insert(wc.end(), v.begin(), v.end());
- notify();
+ notify_worker();
}
void RDMAWorker::get_wc(std::vector<ibv_wc> &w)
PerfCounters *perf_logger;
explicit RDMAWorker(CephContext *c, unsigned i);
virtual ~RDMAWorker();
- void notify();
+ void notify_worker();
void pass_wc(std::vector<ibv_wc> &&v);
void get_wc(std::vector<ibv_wc> &w);
virtual int listen(entity_addr_t &addr, const SocketOptions &opts, ServerSocket *) override;