From: Sage Weil Date: Tue, 16 Oct 2018 18:44:01 +0000 (-0500) Subject: common/QueueRing: Mutex -> ceph::mutex X-Git-Tag: v14.1.0~820^2~26 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ea2cd7bd13b4dcdff5c9f9a9b2903a9f1658c14e;p=ceph.git common/QueueRing: Mutex -> ceph::mutex Signed-off-by: Sage Weil --- diff --git a/src/cls/rgw/cls_rgw_client.h b/src/cls/rgw/cls_rgw_client.h index 464dbe28b9aa..68682a6447c8 100644 --- a/src/cls/rgw/cls_rgw_client.h +++ b/src/cls/rgw/cls_rgw_client.h @@ -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; diff --git a/src/common/QueueRing.h b/src/common/QueueRing.h index 4d6a43cbf95b..af5c47be25f9 100644 --- a/src/common/QueueRing.h +++ b/src/common/QueueRing.h @@ -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 #include @@ -11,33 +13,32 @@ template class QueueRing { struct QueueBucket { - Mutex lock; - Cond cond; + ceph::mutex lock = ceph::make_mutex("QueueRing::QueueBucket::lock"); + ceph::condition_variable cond; typename std::list 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(); }; };