Am 19.10.2010 17:04, Jan Kiszka wrote: > Move the buffer flush from mux_chr_read to mux_chr_can_read. While the > latter is called periodically, the former will only be invoked when new > characters arrive at the back-end. This caused problems to front-end > drivers whenever they were unable to read data immediately, e.g. > virtio-console attached to stdio. >
Ping. > Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> > --- > qemu-char.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/qemu-char.c b/qemu-char.c > index 6d2dce7..f4c3876 100644 > --- a/qemu-char.c > +++ b/qemu-char.c > @@ -398,6 +398,8 @@ static int mux_chr_can_read(void *opaque) > MuxDriver *d = chr->opaque; > int m = d->focus; > > + mux_chr_accept_input(opaque); > + > if ((d->prod[m] - d->cons[m]) < MUX_BUFFER_SIZE) > return 1; > if (d->chr_can_read[m]) > @@ -412,8 +414,6 @@ static void mux_chr_read(void *opaque, const uint8_t > *buf, int size) > int m = d->focus; > int i; > > - mux_chr_accept_input (opaque); > - > for(i = 0; i < size; i++) > if (mux_proc_byte(chr, d, buf[i])) { > if (d->prod[m] == d->cons[m] &&