]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/common/tri_mutex: add waiter_t::waiter_name
authorMatan Breizman <mbreizma@redhat.com>
Sun, 2 Jun 2024 15:17:36 +0000 (15:17 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Thu, 6 Jun 2024 13:57:02 +0000 (13:57 +0000)
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/crimson/common/tri_mutex.cc
src/crimson/common/tri_mutex.h

index 94b0642ded01055aa2a3446c8178d8105fe8dd1c..698b9b43e174ba8a2cd37a408afa88e506a111e5 100644 (file)
@@ -74,7 +74,7 @@ seastar::future<> tri_mutex::lock_for_read()
     return seastar::now();
   }
   DEBUGDPP("can't lock_for_read, adding to waiters", *this);
-  waiters.emplace_back(seastar::promise<>(), type_t::read);
+  waiters.emplace_back(seastar::promise<>(), type_t::read, name);
   return waiters.back().pr.get_future();
 }
 
@@ -127,7 +127,7 @@ seastar::future<> tri_mutex::lock_for_write()
     return seastar::now();
   }
   DEBUGDPP("can't lock_for_write, adding to waiters", *this);
-  waiters.emplace_back(seastar::promise<>(), type_t::write);
+  waiters.emplace_back(seastar::promise<>(), type_t::write, name);
   return waiters.back().pr.get_future();
 }
 
@@ -182,7 +182,7 @@ seastar::future<> tri_mutex::lock_for_excl()
     return seastar::now();
   }
   DEBUGDPP("can't lock_for_excl, adding to waiters", *this);
-  waiters.emplace_back(seastar::promise<>(), type_t::exclusive);
+  waiters.emplace_back(seastar::promise<>(), type_t::exclusive, name);
   return waiters.back().pr.get_future();
 }
 
@@ -251,7 +251,7 @@ void tri_mutex::wake()
     default:
       assert(0);
     }
-    // TODO: DEBUGDPP("waking up {} ", *this);
+    DEBUGDPP("waking up {}", *this, waiter.waiter_name);
     waiter.pr.set_value();
     waiters.pop_front();
   }
index fc825e09e38147963bf9da92e6e9c5dc96126517..285d4b3c168fe67463b050fcd9c397f5b35f331f 100644 (file)
@@ -142,11 +142,12 @@ private:
     none,
   };
   struct waiter_t {
-    waiter_t(seastar::promise<>&& pr, type_t type)
+    waiter_t(seastar::promise<>&& pr, type_t type, std::string_view waiter_name)
       : pr(std::move(pr)), type(type)
     {}
     seastar::promise<> pr;
     type_t type;
+    std::string_view waiter_name;
   };
   seastar::circular_buffer<waiter_t> waiters;
   const std::string name;