{
qemuMonitorTest *test = opaque;
bool err = false;
+ VIR_LOCK_GUARD lock = virLockGuardLock(&test->lock);
- virMutexLock(&test->lock);
- if (test->quit) {
- virMutexUnlock(&test->lock);
+ if (test->quit)
return;
- }
+
if (events & VIR_EVENT_HANDLE_WRITABLE) {
ssize_t ret;
if ((ret = virNetSocketWrite(sock,
virNetSocketUpdateIOCallback(sock, events);
}
- virMutexUnlock(&test->lock);
}
{
qemuMonitorTest *test = opaque;
- virMutexLock(&test->lock);
-
- while (!test->quit) {
- virMutexUnlock(&test->lock);
+ while (true) {
+ VIR_WITH_MUTEX_LOCK_GUARD(&test->lock) {
+ if (test->quit) {
+ test->running = false;
+ return;
+ }
+ }
if (virEventRunDefaultImpl() < 0) {
- virMutexLock(&test->lock);
- test->quit = true;
- break;
+ VIR_WITH_MUTEX_LOCK_GUARD(&test->lock) {
+ test->quit = true;
+ test->running = false;
+ return;
+ }
}
-
- virMutexLock(&test->lock);
}
-
- test->running = false;
-
- virMutexUnlock(&test->lock);
- return;
}
if (!test)
return;
- virMutexLock(&test->lock);
- if (test->running) {
- test->quit = true;
- /* HACK: Add a dummy timeout to break event loop */
- timer = virEventAddTimeout(0, qemuMonitorTestFreeTimer, NULL, NULL);
+ VIR_WITH_MUTEX_LOCK_GUARD(&test->lock) {
+ if (test->running) {
+ test->quit = true;
+ /* HACK: Add a dummy timeout to break event loop */
+ timer = virEventAddTimeout(0, qemuMonitorTestFreeTimer, NULL, NULL);
+ }
}
- virMutexUnlock(&test->lock);
if (test->client) {
virNetSocketRemoveIOCallback(test->client);
item->freecb = freecb;
item->opaque = opaque;
- virMutexLock(&test->lock);
- VIR_APPEND_ELEMENT(test->items, test->nitems, item);
- virMutexUnlock(&test->lock);
+ VIR_WITH_MUTEX_LOCK_GUARD(&test->lock) {
+ VIR_APPEND_ELEMENT(test->items, test->nitems, item);
+ }
return 0;
}
NULL) < 0)
return -1;
- virMutexLock(&test->lock);
- if (virThreadCreate(&test->thread,
- true,
- qemuMonitorTestWorker,
- test) < 0) {
- virMutexUnlock(&test->lock);
- return -1;
+ VIR_WITH_MUTEX_LOCK_GUARD(&test->lock) {
+ if (virThreadCreate(&test->thread, true, qemuMonitorTestWorker, test) < 0)
+ return -1;
+ test->started = test->running = true;
}
- test->started = test->running = true;
- virMutexUnlock(&test->lock);
return 0;
}