[PATCH 19/43] lxc: convert virMutex to GMutex

Rafael Fonseca r4f4rfs at gmail.com
Fri Apr 10 13:54:46 UTC 2020


Signed-off-by: Rafael Fonseca <r4f4rfs at gmail.com>
---
 src/lxc/lxc_conf.h       |  6 +++---
 src/lxc/lxc_controller.c | 25 ++++++++++---------------
 src/lxc/lxc_driver.c     |  7 ++-----
 tests/testutilslxc.c     |  9 ++-------
 4 files changed, 17 insertions(+), 30 deletions(-)

diff --git a/src/lxc/lxc_conf.h b/src/lxc/lxc_conf.h
index f2f0e0a570..27cb861c08 100644
--- a/src/lxc/lxc_conf.h
+++ b/src/lxc/lxc_conf.h
@@ -64,7 +64,7 @@ struct _virLXCDriverConfig {
 };
 
 struct _virLXCDriver {
-    virMutex lock;
+    GMutex lock;
 
     /* Require lock to get reference on 'config',
      * then lockless thereafter */
@@ -116,9 +116,9 @@ virDomainXMLOptionPtr lxcDomainXMLConfInit(virLXCDriverPtr driver);
 
 static inline void lxcDriverLock(virLXCDriverPtr driver)
 {
-    virMutexLock(&driver->lock);
+    g_mutex_lock(&driver->lock);
 }
 static inline void lxcDriverUnlock(virLXCDriverPtr driver)
 {
-    virMutexUnlock(&driver->lock);
+    g_mutex_unlock(&driver->lock);
 }
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 453b435dd6..f7394c53a6 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -161,12 +161,7 @@ virLXCControllerDriverNew(void)
 {
     virLXCDriverPtr driver = g_new0(virLXCDriver, 1);
 
-    if (virMutexInit(&driver->lock) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "%s", _("cannot initialize mutex"));
-        g_free(driver);
-        return NULL;
-    }
+    g_mutex_init(&driver->lock);
 
     driver->caps = virLXCDriverCapsInit(NULL);
     driver->xmlopt = lxcDomainXMLConfInit(driver);
@@ -182,7 +177,7 @@ virLXCControllerDriverFree(virLXCDriverPtr driver)
         return;
     virObjectUnref(driver->xmlopt);
     virObjectUnref(driver->caps);
-    virMutexDestroy(&driver->lock);
+    g_mutex_clear(&driver->lock);
     g_free(driver);
 }
 
@@ -1034,7 +1029,7 @@ static int lxcControllerClearCapabilities(void)
 }
 
 static bool wantReboot;
-static virMutex lock = VIR_MUTEX_INITIALIZER;
+G_LOCK_DEFINE_STATIC(lock);
 
 
 static void virLXCControllerSignalChildIO(virNetDaemonPtr dmn,
@@ -1049,13 +1044,13 @@ static void virLXCControllerSignalChildIO(virNetDaemonPtr dmn,
     VIR_DEBUG("Got sig child %d vs %lld", ret, (long long)ctrl->initpid);
     if (ret == ctrl->initpid) {
         virNetDaemonQuit(dmn);
-        virMutexLock(&lock);
+        G_LOCK(lock);
         if (WIFSIGNALED(status) &&
             WTERMSIG(status) == SIGHUP) {
             VIR_DEBUG("Status indicates reboot");
             wantReboot = true;
         }
-        virMutexUnlock(&lock);
+        G_UNLOCK(lock);
     }
 }
 
@@ -1169,7 +1164,7 @@ static void virLXCControllerConsoleEPoll(int watch, int fd, int events, void *op
 {
     virLXCControllerConsolePtr console = opaque;
 
-    virMutexLock(&lock);
+    G_LOCK(lock);
     VIR_DEBUG("IO event watch=%d fd=%d events=%d fromHost=%zu fromcont=%zu",
               watch, fd, events,
               console->fromHostLen,
@@ -1209,14 +1204,14 @@ static void virLXCControllerConsoleEPoll(int watch, int fd, int events, void *op
     }
 
  cleanup:
-    virMutexUnlock(&lock);
+    G_UNLOCK(lock);
 }
 
 static void virLXCControllerConsoleIO(int watch, int fd, int events, void *opaque)
 {
     virLXCControllerConsolePtr console = opaque;
 
-    virMutexLock(&lock);
+    G_LOCK(lock);
     VIR_DEBUG("IO event watch=%d fd=%d events=%d fromHost=%zu fromcont=%zu",
               watch, fd, events,
               console->fromHostLen,
@@ -1290,7 +1285,7 @@ static void virLXCControllerConsoleIO(int watch, int fd, int events, void *opaqu
     }
 
     virLXCControllerConsoleUpdateWatch(console);
-    virMutexUnlock(&lock);
+    G_UNLOCK(lock);
     return;
 
  error:
@@ -1298,7 +1293,7 @@ static void virLXCControllerConsoleIO(int watch, int fd, int events, void *opaqu
     virEventRemoveHandle(console->hostWatch);
     console->contWatch = console->hostWatch = -1;
     virNetDaemonQuit(console->daemon);
-    virMutexUnlock(&lock);
+    G_UNLOCK(lock);
 }
 
 
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 7b232b4bac..3253c08117 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -1494,10 +1494,7 @@ static int lxcStateInitialize(bool privileged,
     if (VIR_ALLOC(lxc_driver) < 0)
         return VIR_DRV_STATE_INIT_ERROR;
     lxc_driver->lockFD = -1;
-    if (virMutexInit(&lxc_driver->lock) < 0) {
-        VIR_FREE(lxc_driver);
-        return VIR_DRV_STATE_INIT_ERROR;
-    }
+    g_mutex_init(&lxc_driver->lock);
 
     if (!(lxc_driver->domains = virDomainObjListNew()))
         goto cleanup;
@@ -1631,7 +1628,7 @@ static int lxcStateCleanup(void)
         virPidFileRelease(lxc_driver->config->stateDir, "driver", lxc_driver->lockFD);
 
     virObjectUnref(lxc_driver->config);
-    virMutexDestroy(&lxc_driver->lock);
+    g_mutex_clear(&lxc_driver->lock);
     VIR_FREE(lxc_driver);
 
     return 0;
diff --git a/tests/testutilslxc.c b/tests/testutilslxc.c
index b5e2f542e7..1e04263d1f 100644
--- a/tests/testutilslxc.c
+++ b/tests/testutilslxc.c
@@ -63,12 +63,7 @@ testLXCDriverInit(void)
 {
     virLXCDriverPtr driver = g_new0(virLXCDriver, 1);
 
-    if (virMutexInit(&driver->lock) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "%s", "cannot initialize mutex");
-        g_free(driver);
-        return NULL;
-    }
+    g_mutex_init(&driver->lock);
 
     driver->caps = testLXCCapsInit();
     driver->xmlopt = lxcDomainXMLConfInit(driver);
@@ -82,7 +77,7 @@ testLXCDriverFree(virLXCDriverPtr driver)
 {
     virObjectUnref(driver->xmlopt);
     virObjectUnref(driver->caps);
-    virMutexDestroy(&driver->lock);
+    g_mutex_clear(&driver->lock);
     g_free(driver);
 }
 
-- 
2.25.2





More information about the libvir-list mailing list