diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2023-03-03 13:32:13 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2023-05-25 10:18:33 +0200 |
commit | 6ee7c82d0df9bb6e972a8ea689b935df3ba37486 (patch) | |
tree | f99a5786fb54b9072069e498313d4336bd9aaa6a /monitor/monitor-internal.h | |
parent | 4cb96b974265f97a9902b4458e50d01082572a16 (diff) | |
download | qemu-6ee7c82d0df9bb6e972a8ea689b935df3ba37486.zip qemu-6ee7c82d0df9bb6e972a8ea689b935df3ba37486.tar.gz qemu-6ee7c82d0df9bb6e972a8ea689b935df3ba37486.tar.bz2 |
monitor: do not use mb_read/mb_set for suspend_cnt
Clean up monitor_event to just use monitor_suspend/monitor_resume,
using mon->mux_out to protect against incorrect nesting (especially
on startup).
The only remaining case of reading suspend_cnt is in the can_read
callback, which is just advisory and can use qatomic_read.
As an extra benefit, mux_out is now simply protected by mon_lock.
Also, moving the prompt to the beginning of the main loop removes
it from the output in some error cases where QEMU does not actually
start successfully. It is not a full fix and it would be nice to
also remove the monitor heading, but this is already a small (though
unintentional) improvement.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'monitor/monitor-internal.h')
-rw-r--r-- | monitor/monitor-internal.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h index 53e3808..61c9b69 100644 --- a/monitor/monitor-internal.h +++ b/monitor/monitor-internal.h @@ -94,7 +94,6 @@ typedef struct HMPCommand { struct Monitor { CharBackend chr; - int reset_seen; int suspend_cnt; /* Needs to be accessed atomically */ bool is_qmp; bool skip_flush; @@ -115,8 +114,8 @@ struct Monitor { QLIST_HEAD(, mon_fd_t) fds; GString *outbuf; guint out_watch; - /* Read under either BQL or mon_lock, written with BQL+mon_lock. */ int mux_out; + int reset_seen; }; struct MonitorHMP { |