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 /block.h | |
parent | 279826619dfb36bac39d8549526a76eabb9d311e (diff) |
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 'block.h')
-rw-r--r-- | block.h | 3 |
1 files changed, 0 insertions, 3 deletions
@@ -90,11 +90,8 @@ BlockDriverAIOCB *bdrv_aio_write(BlockDriverState *bs, int64_t sector_num, void bdrv_aio_cancel(BlockDriverAIOCB *acb); void qemu_aio_init(void); -void qemu_aio_poll(void); void qemu_aio_flush(void); -void qemu_aio_wait_start(void); void qemu_aio_wait(void); -void qemu_aio_wait_end(void); int qemu_key_check(BlockDriverState *bs, const char *name); |