mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-26 20:03:54 -06:00
qemu-io: use main_loop_wait
This will let timers run during aio_read and aio_write commands, though not during synchronous commands. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
3ed9902528
commit
a5a5238ee4
2 changed files with 9 additions and 8 deletions
|
@ -15,6 +15,7 @@
|
|||
#include <libgen.h>
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "main-loop.h"
|
||||
#include "block_int.h"
|
||||
#include "cmd.h"
|
||||
#include "trace/control.h"
|
||||
|
@ -295,7 +296,7 @@ static int do_aio_readv(QEMUIOVector *qiov, int64_t offset, int *total)
|
|||
bdrv_aio_readv(bs, offset >> 9, qiov, qiov->size >> 9,
|
||||
aio_rw_done, &async_ret);
|
||||
while (async_ret == NOT_DONE) {
|
||||
qemu_aio_wait();
|
||||
main_loop_wait(false);
|
||||
}
|
||||
|
||||
*total = qiov->size;
|
||||
|
@ -309,7 +310,7 @@ static int do_aio_writev(QEMUIOVector *qiov, int64_t offset, int *total)
|
|||
bdrv_aio_writev(bs, offset >> 9, qiov, qiov->size >> 9,
|
||||
aio_rw_done, &async_ret);
|
||||
while (async_ret == NOT_DONE) {
|
||||
qemu_aio_wait();
|
||||
main_loop_wait(false);
|
||||
}
|
||||
|
||||
*total = qiov->size;
|
||||
|
@ -352,7 +353,7 @@ static int do_aio_multiwrite(BlockRequest* reqs, int num_reqs, int *total)
|
|||
}
|
||||
|
||||
while (async_ret.num_done < num_reqs) {
|
||||
qemu_aio_wait();
|
||||
main_loop_wait(false);
|
||||
}
|
||||
|
||||
return async_ret.error < 0 ? async_ret.error : 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue