]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/test/common/test_mutex.cc
update sources to v12.2.3
[ceph.git] / ceph / src / test / common / test_mutex.cc
index b62341e71422120f2b53ead160faee7946372858..a4b496103e7cc85dc3850b1f30439de64166b250 100644 (file)
@@ -24,14 +24,23 @@ namespace ceph
   }
 }
 
-void do_init() {
-  static CephContext* cct = nullptr;
+static CephContext* cct;
+
+static void do_init() {
   if (cct == nullptr) {
     cct = new CephContext(0);
     lockdep_register_ceph_context(cct);
   }
 }
 
+static void disable_lockdep() {
+  if (cct) {
+    lockdep_unregister_ceph_context(cct);
+    cct->put();
+    cct = nullptr;
+  }
+}
+
 TEST(Mutex, NormalAsserts) {
   Mutex* m = new Mutex("Normal",false);
   m->Lock();
@@ -40,7 +49,6 @@ TEST(Mutex, NormalAsserts) {
 
 TEST(Mutex, RecursiveWithLockdep) {
   do_init();
-  g_lockdep = 1;
   Mutex* m = new Mutex("Recursive1",true);
   m->Lock();
   m->Lock();
@@ -50,8 +58,7 @@ TEST(Mutex, RecursiveWithLockdep) {
 }
 
 TEST(Mutex, RecursiveWithoutLockdep) {
-  do_init();
-  g_lockdep = 0;
+  disable_lockdep();
   Mutex* m = new Mutex("Recursive2",true);
   m->Lock();
   m->Lock();