diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2016-10-27 12:48:59 +0200 |
---|---|---|
committer | Fam Zheng <famz@redhat.com> | 2016-10-28 21:50:18 +0800 |
commit | e437016511edb0dfa13cc98587c39590eaa2609a (patch) | |
tree | acf1b17ca024a06b3f7d7c2fde5f2a56fcdace47 /include/block | |
parent | f11672dbc0207cfb0015a2d08e7693b957847cbe (diff) |
aio: introduce qemu_get_current_aio_context
This will be used by BDRV_POLL_WHILE (and thus by bdrv_drain)
to choose how to wait for I/O completion.
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <1477565348-5458-12-git-send-email-pbonzini@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r-- | include/block/aio.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/block/aio.h b/include/block/aio.h index b9fe2cb37e..040b3b181e 100644 --- a/include/block/aio.h +++ b/include/block/aio.h @@ -453,6 +453,24 @@ static inline bool aio_node_check(AioContext *ctx, bool is_external) } /** + * Return the AioContext whose event loop runs in the current thread. + * + * If called from an IOThread this will be the IOThread's AioContext. If + * called from another thread it will be the main loop AioContext. + */ +AioContext *qemu_get_current_aio_context(void); + +/** + * @ctx: the aio context + * + * Return whether we are running in the I/O thread that manages @ctx. + */ +static inline bool aio_context_in_iothread(AioContext *ctx) +{ + return ctx == qemu_get_current_aio_context(); +} + +/** * aio_context_setup: * @ctx: the aio context * |