Avi Kivity wrote:
I'd make everything line-oriented. Anything from the user up to \n is
buffered and ignored until the \n arrives.
Once the \n arrives, the command is acted upon atomically, either
completing fully or launching an async notification.
So the rules are: whenever the monitor is idle, a notification can be
printed out.
So by idle, you mean, the end of the output buffer ends in either '\n'
or '\n(qemu) '. The input buffer must also be empty.
(qemu) notify enospace on
(qemu) notify vnc-connect on
(qemu)
notification: vnc connection ...
(qemu) notify migration-completion on
(qemu) migrate -d ...
notification: enospc on ide0-0
(qemu) migrate_cancel
notification: migration cancelled
(qemu) migrate -d ...
(qemu)
notification: migration completed
This hurts my eyes. It's not human readable. If we're going to do
this, we might as well have a non-human mode which would oddly enough be
more human readable. If you do this, then your session looks an awful
lot like my session from a previous note.
I think the thing that is missing is that the 'wait' command does not
have to be part of the non-human mode. In non-human mode, you are
always doing an implicit wait.
--
Regards,
Anthony Liguori