@samitouri / QOSamiQemu / commits / d32de72a73

monitor: use dynamic cast in monitor_qmp_requests_pop_any_with_lock

This eliminates a use of monitor_is_qmp() from the QMP coroutine dispatch path. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Tested-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260706135824.2623960-17-berrange@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Daniel P. Berrangé committed Jul 6, 2026 at 14:58 UTC d32de72a739fc4fd38c7422f933ed150480d8d98
1 file changed +3 -2
monitor/qmp.c
+3 -2
@@ -277,11 +277,12 @@ static QMPRequest *monitor_qmp_requests_pop_any_with_lock(void)
277 MonitorQMP *qmp_mon;
278
279 QTAILQ_FOREACH(mon, &mon_list, entry) {
280 - if (!monitor_is_qmp(mon)) {
280 + qmp_mon = MONITOR_QMP(
281 + object_dynamic_cast(OBJECT(mon), TYPE_MONITOR_QMP));
282 + if (!qmp_mon) {
283 continue;
284 }
285
284 - qmp_mon = container_of(mon, MonitorQMP, parent_obj);
286 qemu_mutex_lock(&qmp_mon->qmp_queue_lock);
287 req_obj = g_queue_pop_head(qmp_mon->qmp_requests);
288 if (req_obj) {