On 12/13/25 01:14, Marc Morcos wrote:
@@ -346,7 +347,15 @@ static void monitor_qapi_event_emit(QAPIEvent event, QDict
*qdict)
}
qmp_mon = container_of(mon, MonitorQMP, common);
- if (qmp_mon->commands != &qmp_cap_negotiation_commands) {
+ do_send = false;
+
+ WITH_QEMU_LOCK_GUARD(&mon->mon_lock) {
+ if (qmp_mon->commands != &qmp_cap_negotiation_commands) {
+ do_send = true;
+ }
+ }
+
+ if (do_send) {
qmp_send_response(qmp_mon, qdict);
}
}
We cannot use WITH_QEMU_LOCK_GUARD with "continue" or "break" inside,
but we can use QEMU_LOCK_GUARD:
@@ -347,17 +346,13 @@ static void monitor_qapi_event_emit(QAPIEvent
event, QDict *qdict)
}
qmp_mon = container_of(mon, MonitorQMP, common);
- do_send = false;
-
- WITH_QEMU_LOCK_GUARD(&mon->mon_lock) {
- if (qmp_mon->commands != &qmp_cap_negotiation_commands) {
- do_send = true;
+ {
+ QEMU_LOCK_GUARD(&mon->mon_lock);
+ if (qmp_mon->commands == &qmp_cap_negotiation_commands) {
+ continue;
}
}
-
- if (do_send) {
- qmp_send_response(qmp_mon, qdict);
- }
+ qmp_send_response(qmp_mon, qdict);
}
}
Let me know if this is okay for you!
Paolo