Patchwork [1/2,V2] coroutine: init unlock_bh during boot

login
register
mail settings
Submitter Lai Jiangshan
Date April 6, 2012, 8:06 a.m.
Message ID <1333699599-12606-1-git-send-email-laijs@cn.fujitsu.com>
Download mbox | patch
Permalink /patch/151236/
State New
Headers show

Comments

Lai Jiangshan - April 6, 2012, 8:06 a.m.
use __attribute__((constructor)) to do the initialization.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 qemu-coroutine-lock.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

Patch

diff --git a/qemu-coroutine-lock.c b/qemu-coroutine-lock.c
index 26ad76b..03b999e 100644
--- a/qemu-coroutine-lock.c
+++ b/qemu-coroutine-lock.c
@@ -44,13 +44,14 @@  static void qemu_co_queue_next_bh(void *opaque)
     }
 }
 
+static void __attribute__((constructor)) unlock_bh_init(void)
+{
+    unlock_bh = qemu_bh_new(qemu_co_queue_next_bh, NULL);
+}
+
 void qemu_co_queue_init(CoQueue *queue)
 {
     QTAILQ_INIT(&queue->entries);
-
-    if (!unlock_bh) {
-        unlock_bh = qemu_bh_new(qemu_co_queue_next_bh, NULL);
-    }
 }
 
 void coroutine_fn qemu_co_queue_wait(CoQueue *queue)