Home
last modified time | relevance | path

Searched hist:"98563 fc3ec44c1becce6f1720ad6b0a82ed101b4" (Results 1 – 1 of 1) sorted by relevance

/openbmc/qemu/include/block/
H A Daio.hdiff 98563fc3ec44c1becce6f1720ad6b0a82ed101b4 Mon Mar 03 04:30:04 CST 2014 Stefan Hajnoczi <stefanha@redhat.com> 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>