On Mon, 19 Jul 2021 at 19:22, Volker Rümelin <vr_q...@t-online.de> wrote: > > Am 18.07.21 um 15:00 schrieb Peter Maydell: > > > On Sun, 18 Jul 2021 at 08:50, Volker Rümelin <vr_q...@t-online.de> wrote: > >> Since commit 8eb13bbbac ("ui/gtk: vte: fix sending multiple > >> characeters") it's very easy to lock up QEMU with the gtk ui. > >> If you configure a guest with a serial device and the guest > >> doesn't listen on this device, QEMU will lock up after > >> entering two characters in the serial console. > >> > >> To fix this problem copy the function kbd_send_chars() and > >> related code from ui/console.c to ui/gtk.c. kbd_send_chars() > >> doesn't lock up because it uses a timer instead of a busy loop > >> for the write retries. > >> > >> Fixes: 8eb13bbbac ("ui/gtk: vte: fix sending multiple characeters") > >> Signed-off-by: Volker Rümelin <vr_q...@t-online.de> > >> --- > >> include/ui/gtk.h | 5 +++++ > >> ui/gtk.c | 53 ++++++++++++++++++++++++++++++++++++++++-------- > >> 2 files changed, 50 insertions(+), 8 deletions(-) > > This feels like maybe it's the kind of thing that should be handled > > more generically rather than in one particular UI frontend ?
> All other UI frontends (except Spice) use the correct code in > kbd_send_chars(). I think only the GTK UI code is wrong. Why isn't GTK able to do things the same way all the other UI frontends do, then ? -- PMM