]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
msg/async/rdma: avoid adding worker twice to pending_workers
authorAdir Lev <adirl@mellanox.com>
Sun, 28 May 2017 13:11:54 +0000 (13:11 +0000)
committerAdir Lev <adirl@mellanox.com>
Tue, 27 Jun 2017 14:00:27 +0000 (14:00 +0000)
Change-Id: I4dda9040a055bdb8787ffd23a6928925d0a69d83
Signed-off-by: Adir Lev <adirl@mellanox.com>
src/msg/async/rdma/RDMAStack.h

index fdd21761d3280175978a1fe022424bbe21c02ae1..27373fb6487ae425754b3ebe571cc7c4a2e9f000 100644 (file)
@@ -127,10 +127,11 @@ class RDMADispatcher {
   int register_qp(QueuePair *qp, RDMAConnectedSocketImpl* csi);
   void make_pending_worker(RDMAWorker* w) {
     Mutex::Locker l(w_lock);
-    if (pending_workers.back() != w) {
-      pending_workers.push_back(w);
-      ++num_pending_workers;
-    }
+    auto it = std::find(pending_workers.begin(), pending_workers.end(), w);
+    if (it != pending_workers.end())
+      return;
+    pending_workers.push_back(w);
+    ++num_pending_workers;
   }
   RDMAStack* get_stack() { return stack; }
   RDMAConnectedSocketImpl* get_conn_lockless(uint32_t qp);