mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
lockable: add QemuRecMutex support
The polymorphic locking macros don't support QemuRecMutex yet. Add it so that lock guards can be used with QemuRecMutex. Convert TCG plugins functions that benefit from these macros. Manual qemu_rec_mutex_lock/unlock() callers are left unmodified in cases where clarity would not improve by switching to the macros. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3284c3ddc4
commit
ac90871cf8
3 changed files with 15 additions and 14 deletions
|
@ -19,6 +19,7 @@
|
|||
#include "qemu/error-report.h"
|
||||
#include "qemu/config-file.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qemu/lockable.h"
|
||||
#include "qemu/option.h"
|
||||
#include "qemu/rcu_queue.h"
|
||||
#include "qemu/qht.h"
|
||||
|
@ -367,15 +368,14 @@ void plugin_reset_uninstall(qemu_plugin_id_t id,
|
|||
struct qemu_plugin_reset_data *data;
|
||||
struct qemu_plugin_ctx *ctx;
|
||||
|
||||
qemu_rec_mutex_lock(&plugin.lock);
|
||||
ctx = plugin_id_to_ctx_locked(id);
|
||||
if (ctx->uninstalling || (reset && ctx->resetting)) {
|
||||
qemu_rec_mutex_unlock(&plugin.lock);
|
||||
return;
|
||||
WITH_QEMU_LOCK_GUARD(&plugin.lock) {
|
||||
ctx = plugin_id_to_ctx_locked(id);
|
||||
if (ctx->uninstalling || (reset && ctx->resetting)) {
|
||||
return;
|
||||
}
|
||||
ctx->resetting = reset;
|
||||
ctx->uninstalling = !reset;
|
||||
}
|
||||
ctx->resetting = reset;
|
||||
ctx->uninstalling = !reset;
|
||||
qemu_rec_mutex_unlock(&plugin.lock);
|
||||
|
||||
data = g_new(struct qemu_plugin_reset_data, 1);
|
||||
data->ctx = ctx;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue