On Tue, Sep 15, 2026 at 06:16:46PM +0800, Zhang Chen wrote: > Monitors that require an IOThread share the internal mon_iothread. > Account for each monitor explicitly in IOThread holder tracking, using > the monitor's canonical QOM path to distinguish holders. > > Acquire the shared monitor IOThread AioContext once and store the > IOThread and canonical QOM path so the holder can be released after the > monitor has been removed from the QOM tree. Use the stored IOThread for > per-monitor checks and accesses after initialization, and reuse the > stored context for later operations. > > Release the holder from monitor_finalize(), after resources associated > with the AioContext have been destroyed. This pairs the reference taken > in complete() with instance finalization and keeps the IOThread alive > throughout monitor teardown. > > The internal mon_iothread remains hidden from query-iothreads, as before. > Management applications therefore cannot use it to determine which > monitors are using the IOThread. Nevertheless, track the monitor > holders so that they follow the same explicit holder and > IOThread reference lifecycle as other AioContext users. > > Signed-off-by: Zhang Chen <[email protected]> > --- > monitor/monitor-internal.h | 7 +++++-- > monitor/monitor.c | 36 ++++++++++++++++++++++++++---------- > monitor/qmp.c | 14 +++++++------- > 3 files changed, 38 insertions(+), 19 deletions(-)
Aside from Markus' comment: Reviewed-by: Stefan Hajnoczi <[email protected]>
signature.asc
Description: PGP signature
