diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2014-03-03 11:30:04 +0100 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2014-03-13 14:42:24 +0100 |
commit | 98563fc3ec44c1becce6f1720ad6b0a82ed101b4 (patch) | |
tree | 18adf9c0239707158d5f95ef2e0702c5eeaa29b8 /target-sparc/ldst_helper.c | |
parent | 2da61b671eb89fcaa306738f44eed472977d6587 (diff) |
aio: add aio_context_acquire() and aio_context_release()
It can be useful to run an AioContext from a thread which normally does
not "own" the AioContext. For example, request draining can be
implemented by acquiring the AioContext and looping aio_poll() until all
requests have been completed.
The following pattern should work:
/* Event loop thread */
while (running) {
aio_context_acquire(ctx);
aio_poll(ctx, true);
aio_context_release(ctx);
}
/* Another thread */
aio_context_acquire(ctx);
bdrv_read(bs, 0x1000, buf, 1);
aio_context_release(ctx);
This patch implements aio_context_acquire() and aio_context_release().
Note that existing aio_poll() callers do not need to worry about
acquiring and releasing - it is only needed when multiple threads will
call aio_poll() on the same AioContext.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'target-sparc/ldst_helper.c')
0 files changed, 0 insertions, 0 deletions