On 22 March 2017 at 12:27, Paolo Bonzini <pbonz...@redhat.com> wrote:
> > > On 22/03/2017 11:28, Jiahuan Zhang wrote: > > > > A function that lets a process sleep until data is available on the > > socket. The solution is to rewrite Windows chardev handling in QEMU > to > > use threads or overlapped I/O. > > > > Yes, socket is working well. Will you add the "select" to pipe > > implementation? > > It's Windows that doesn't support it (the Windows function name is > WaitForSingleObject). Hi, I have checked the Windows chardev implimentation in QEMU. I learned from char-win-stdio.c to using thread and WaitForSingleObject for interlocking. char-win-stdio.c uses qemu_add_wait_object(). Char-pipe.c uses qemu_add_polling_cb(). I found all over qemu, only char-pipe uses qemu_add_polling_cb(). Does this mean that somebody has already looked into this issue, and failed in using qemu_add_wait_object(), and then he/she created qemu_add_polling_cb()? If so, what I am going to do is just something has been proved to be useless. Please tell me if my guess is true. Best, Huan > > Paolo > > > Or shall I look into it and fix? Since in my case, I prefer windows pipe > > to socket. > > But if I do, definitly, I will spend much more effort than you, the > experts. >