From ea2cd7bd13b4dcdff5c9f9a9b2903a9f1658c14e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 16 Oct 2018 13:44:01 -0500 Subject: [PATCH] common/QueueRing: Mutex -> ceph::mutex Signed-off-by: Sage Weil --- src/cls/rgw/cls_rgw_client.h | 2 ++ src/common/QueueRing.h | 23 ++++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/cls/rgw/cls_rgw_client.h b/src/cls/rgw/cls_rgw_client.h index 464dbe28b9a..68682a6447c 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 4d6a43cbf95..af5c47be25f 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(); }; }; -- 2.39.5