diff options
author | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-10 15:45:19 +0000 |
---|---|---|
committer | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-10 15:45:19 +0000 |
commit | baf35cb90204d75404892aa4e52628ae7a00669b (patch) | |
tree | 44d96418e4d0e90c5841692a29743022fbc107c1 /vl.c | |
parent | 279826619dfb36bac39d8549526a76eabb9d311e (diff) | |
download | hqemu-baf35cb90204d75404892aa4e52628ae7a00669b.zip hqemu-baf35cb90204d75404892aa4e52628ae7a00669b.tar.gz |
Use signalfd() to work around signal/select race
This patch introduces signalfd() to work around the signal/select race in
checking for AIO completions. For platforms that don't support signalfd(), we
emulate it with threads.
There was a long discussion about this approach. I don't believe there are any
fundamental problems with this approach and I believe eliminating the use of
signals is a good thing.
I've tested Windows and Linux using Windows and Linux guests. I've also checked
for disk IO performance regressions.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5187 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'vl.c')
-rw-r--r-- | vl.c | 1 |
1 files changed, 0 insertions, 1 deletions
@@ -7482,7 +7482,6 @@ void main_loop_wait(int timeout) slirp_select_poll(&rfds, &wfds, &xfds); } #endif - qemu_aio_poll(); if (vm_running) { if (likely(!(cur_cpu->singlestep_enabled & SSTEP_NOTIMER))) |