use __attribute__((constructor)) to do the initialization.

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

diff --git a/qemu-coroutine-lock.c b/qemu-coroutine-lock.c
index 90141cd..7c29bc4 100644
--- a/qemu-coroutine-lock.c
+++ b/qemu-coroutine-lock.c
@@ -44,13 +44,14 @@ static void qemu_co_process_runnable(void *opaque)
     }
 }
 
+static void __attribute__((constructor)) co_runnable_bh_init(void)
+{
+    co_runnable_bh = qemu_bh_new(qemu_co_process_runnable, NULL);
+}
+
 void qemu_co_queue_init(CoQueue *queue)
 {
     QTAILQ_INIT(&queue->entries);
-
-    if (!co_runnable_bh) {
-        co_runnable_bh = qemu_bh_new(qemu_co_process_runnable, NULL);
-    }
 }
 
 void coroutine_fn qemu_co_queue_wait(CoQueue *queue)
-- 
1.7.4.4


Reply via email to