Searched hist:"98563 fc3ec44c1becce6f1720ad6b0a82ed101b4" (Results 1 – 1 of 1) sorted by relevance
/openbmc/qemu/include/block/ |
H A D | aio.h | diff 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>
|