Il 16/04/2013 11:15, Gerd Hoffmann ha scritto: > On 04/10/13 15:23, Paolo Bonzini wrote: >> After attaching the source, we have to remove the reference we hold >> to it, because we do not hold anymore a pointer to the source. >> >> If we do not do this, removing the source will not finalize it and >> will not drop the "real" I/O watch source. >> >> This showed up when backporting the new flow control patches to older >> versions of QEMU that still used select. The whole select then failed >> with EBADF (poll instead will reporting POLLNVAL on a single pollfd) >> and QEMU froze. > > I get freezes now in master, bisecting points to this patch. > > Reproducer: "qemu -serial pty". > > qemu is pretty much unusable with libvirt now as libvirt uses pty > chardevs by default for serial & monitor ...
I'm not sure why all users of qemu_chr_fe_add_watch believe that the watch will be one-shot. This is definitely not what g_io_create_watch does... Paolo