• L
    hmp: human-monitor-command: stop using the Memory chardev driver · 48c043d0
    Luiz Capitulino 提交于
    The Memory chardev driver was added because, as the Monitor's output
    buffer was static, we needed a way to accumulate the output of an
    HMP commmand when ran by human-monitor-command.
    
    However, the Monitor's output buffer is now dynamic, so it's possible
    for the human-monitor-command to use it instead of the Memory chardev
    driver.
    
    This commit does that change, but there are two important
    observations about it:
    
     1. We need a way to signal to the Monitor that it shouldn't call
        chardev functions when flushing its output. This is done
        by adding a new flag to the Monitor object called skip_flush
    	(which is set to true by qmp_human_monitor_command())
    
     2. The current code has buffered semantics: QMP clients will
        only see a command's output if it flushes its output with
    	a new-line character. This commit changes this to unbuffered,
    	which means that QMP clients will see a command's output
    	whenever the command prints anything.
    
    	I don't think this will matter in practice though, as I believe
    	all HMP commands print the new-line character anyway.
    Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    Acked-by: NGerd Hoffmann <kraxel@redhat.com>
    48c043d0
monitor.c 138.7 KB