summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>2015-09-17 19:24:50 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2015-11-06 10:16:03 +0100
commitdf281b80b9ecba65d85795aa738c29e5b94d5ef1 (patch)
treeaf1c4f9973200139873ac2d4c79fb86d504540a3
parent8bd7f71d794b93ce027b856f5b79a98f4f82e44c (diff)
downloadqemu-df281b80b9ecba65d85795aa738c29e5b94d5ef1.tar.gz
qemu-df281b80b9ecba65d85795aa738c29e5b94d5ef1.tar.bz2
qemu-df281b80b9ecba65d85795aa738c29e5b94d5ef1.zip
bottom halves: introduce bh call function
This patch introduces aio_bh_call function. It is used to execute bottom halves as callbacks without adding them to the queue. Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> Message-Id: <20150917162450.8676.56980.stgit@PASHA-ISP.def.inno> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
-rw-r--r--async.c7
-rw-r--r--include/block/aio.h5
2 files changed, 11 insertions, 1 deletions
diff --git a/async.c b/async.c
index bdc64a3da9..9589e4bb7d 100644
--- a/async.c
+++ b/async.c
@@ -59,6 +59,11 @@ QEMUBH *aio_bh_new(AioContext *ctx, QEMUBHFunc *cb, void *opaque)
return bh;
}
+void aio_bh_call(QEMUBH *bh)
+{
+ bh->cb(bh->opaque);
+}
+
/* Multiple occurrences of aio_bh_poll cannot be called concurrently */
int aio_bh_poll(AioContext *ctx)
{
@@ -84,7 +89,7 @@ int aio_bh_poll(AioContext *ctx)
ret = 1;
}
bh->idle = 0;
- bh->cb(bh->opaque);
+ aio_bh_call(bh);
}
}
diff --git a/include/block/aio.h b/include/block/aio.h
index bcc7d43f6a..92efc5e1f1 100644
--- a/include/block/aio.h
+++ b/include/block/aio.h
@@ -209,6 +209,11 @@ void aio_notify(AioContext *ctx);
void aio_notify_accept(AioContext *ctx);
/**
+ * aio_bh_call: Executes callback function of the specified BH.
+ */
+void aio_bh_call(QEMUBH *bh);
+
+/**
* aio_bh_poll: Poll bottom halves for an AioContext.
*
* These are internal functions used by the QEMU main loop.