]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/QueueRing: Mutex -> ceph::mutex
authorSage Weil <sage@redhat.com>
Tue, 16 Oct 2018 18:44:01 +0000 (13:44 -0500)
committerKefu Chai <kchai@redhat.com>
Wed, 21 Nov 2018 03:56:33 +0000 (11:56 +0800)
Signed-off-by: Sage Weil <sage@redhat.com>
src/cls/rgw/cls_rgw_client.h
src/common/QueueRing.h

index 464dbe28b9aacda4acdf6563873c281eac1a5e03..68682a6447c85c00e4a2094b064b168f9dbdef75 100644 (file)
@@ -8,6 +8,8 @@
 #include "common/RefCountedObj.h"
 #include "include/compat.h"
 #include "common/ceph_time.h"
+#include "common/Mutex.h"
+#include "common/Cond.h"
 
 // Forward declaration
 class BucketIndexAioManager;
index 4d6a43cbf95bb381fa1c3bb5037ec9d2ae576e55..af5c47be25f9d6d077a82043a0b851fa62e6c13a 100644 (file)
@@ -1,8 +1,10 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
 #ifndef QUEUE_RING_H
 #define QUEUE_RING_H
 
-#include "common/Mutex.h"
-#include "common/Cond.h"
+#include "common/ceph_mutex.h"
 
 #include <list>
 #include <atomic>
 template <class T>
 class QueueRing {
   struct QueueBucket {
-    Mutex lock;
-    Cond cond;
+    ceph::mutex lock = ceph::make_mutex("QueueRing::QueueBucket::lock");
+    ceph::condition_variable cond;
     typename std::list<T> entries;
 
-    QueueBucket() : lock("QueueRing::QueueBucket::lock") {}
-    QueueBucket(const QueueBucket& rhs) : lock("QueueRing::QueueBucket::lock") {
+    QueueBucket() {}
+    QueueBucket(const QueueBucket& rhs) {
       entries = rhs.entries;
     }
 
     void enqueue(const T& entry) {
       lock.lock();
       if (entries.empty()) {
-        cond.Signal();
+        cond.notify_all();
       }
       entries.push_back(entry);
       lock.unlock();
     }
 
     void dequeue(T *entry) {
-      lock.lock();
-      if (entries.empty()) {
-        cond.Wait(lock);
+      std::unique_lock l(lock);
+      while (entries.empty()) {
+        cond.wait(l);
       };
       ceph_assert(!entries.empty());
       *entry = entries.front();
       entries.pop_front();
-      lock.unlock();
     };
   };