]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: remove unnecessary OpsLogFile::flush_mutex
authorCasey Bodley <cbodley@redhat.com>
Mon, 25 Apr 2022 17:40:19 +0000 (13:40 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 25 Apr 2022 18:12:53 +0000 (14:12 -0400)
this mutex was only held by one function, OpsLogFile::flush(). this
private member function is only ever called from the background thread,
so doesn't need to be protected by a mutex

as a further cleanup, i renamed 'cond' and 'mutex' now that we don't
need to differentiate between different locks

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_log.cc
src/rgw/rgw_log.h

index 6f59a8d00a4f2a518c58a254c1f65ca3257b0715..7f63d5f18aafa7e29b29ddfb8f3c9577dc84c9b7 100644 (file)
@@ -354,9 +354,8 @@ void OpsLogFile::reopen() {
 
 void OpsLogFile::flush()
 {
-  std::scoped_lock flush_lock(flush_mutex);
   {
-    std::scoped_lock log_lock(log_mutex);
+    std::scoped_lock log_lock(mutex);
     assert(flush_buffer.empty());
     flush_buffer.swap(log_buffer);
     data_size = 0;
@@ -389,7 +388,7 @@ void OpsLogFile::flush()
 }
 
 void* OpsLogFile::entry() {
-  std::unique_lock lock(log_mutex);
+  std::unique_lock lock(mutex);
   while (!stopped) {
     if (!log_buffer.empty()) {
       lock.unlock();
@@ -397,7 +396,7 @@ void* OpsLogFile::entry() {
       lock.lock();
       continue;
     }
-    cond_flush.wait(lock);
+    cond.wait(lock);
   }
   flush();
   return NULL;
@@ -410,8 +409,8 @@ void OpsLogFile::start() {
 
 void OpsLogFile::stop() {
   {
-    std::unique_lock lock(log_mutex);
-    cond_flush.notify_one();
+    std::unique_lock lock(mutex);
+    cond.notify_one();
     stopped = true;
   }
   join();
@@ -427,14 +426,14 @@ OpsLogFile::~OpsLogFile()
 
 int OpsLogFile::log_json(struct req_state* s, bufferlist& bl)
 {
-  std::unique_lock lock(log_mutex);
+  std::unique_lock lock(mutex);
   if (data_size + bl.length() >= max_data_size) {
     ldout(s->cct, 0) << "ERROR: RGW ops log file buffer too full, dropping log for txn: " << s->trans_id << dendl;
     return -1;
   }
   log_buffer.push_back(bl);
   data_size += bl.length();
-  cond_flush.notify_all();
+  cond.notify_all();
   return 0;
 }
 
index b36771572403c14cc4ebf3d724aafbb1011e78d1..874f97079c79308507a78772d340864b620460ca 100644 (file)
@@ -165,11 +165,10 @@ public:
 
 class OpsLogFile : public JsonOpsLogSink, public Thread, public DoutPrefixProvider {
   CephContext* cct;
-  ceph::mutex log_mutex = ceph::make_mutex("OpsLogFile_log");
-  ceph::mutex flush_mutex = ceph::make_mutex("OpsLogFile_flush");
+  ceph::mutex mutex = ceph::make_mutex("OpsLogFile");
   std::vector<bufferlist> log_buffer;
   std::vector<bufferlist> flush_buffer;
-  ceph::condition_variable cond_flush;
+  ceph::condition_variable cond;
   std::ofstream file;
   bool stopped;
   uint64_t data_size;