ceph_assert(qp_conns.empty());
ceph_assert(num_qp_conn == 0);
ceph_assert(dead_queue_pairs.empty());
-
- delete async_handler;
}
RDMADispatcher::RDMADispatcher(CephContext* c, shared_ptr<Infiniband>& ib)
- : cct(c), ib(ib), async_handler(new C_handle_cq_async(this))
+ : cct(c), ib(ib)
{
PerfCountersBuilder plb(cct, "AsyncMessenger::RDMADispatcher", l_msgr_rdma_dispatcher_first, l_msgr_rdma_dispatcher_last);
Infiniband::CompletionQueue* tx_cq = nullptr;
Infiniband::CompletionQueue* rx_cq = nullptr;
Infiniband::CompletionChannel *tx_cc = nullptr, *rx_cc = nullptr;
- EventCallbackRef async_handler;
bool done = false;
std::atomic<uint64_t> num_qp_conn = {0};
// protect `qp_conns`, `dead_queue_pairs`
std::list<RDMAWorker*> pending_workers;
void enqueue_dead_qp(uint32_t qp);
- class C_handle_cq_async : public EventCallback {
- RDMADispatcher *dispatcher;
- public:
- explicit C_handle_cq_async(RDMADispatcher *w): dispatcher(w) {}
- void do_request(uint64_t fd) {
- // worker->handle_tx_event();
- dispatcher->handle_async_event();
- }
- };
-
public:
PerfCounters *perf_logger;