From 4252240e5403cdadc6b0515e53788d04deb1c5bc Mon Sep 17 00:00:00 2001 From: Brian White Date: Sat, 2 Jun 2012 20:04:44 +0200 Subject: [PATCH] windows: add uv__once_init() that ensures that libuv has been initialized --- src/win/core.c | 9 +++++++-- src/win/internal.h | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/win/core.c b/src/win/core.c index 78c9fac5..4af238c2 100644 --- a/src/win/core.c +++ b/src/win/core.c @@ -100,13 +100,18 @@ static void uv_loop_init(uv_loop_t* loop) { static void uv_default_loop_init(void) { /* Initialize libuv itself first */ - uv_once(&uv_init_guard_, uv_init); + uv__once_init(); /* Initialize the main loop */ uv_loop_init(&uv_default_loop_); } +void uv__once_init(void) { + uv_once(&uv_init_guard_, uv_init); +} + + uv_loop_t* uv_default_loop(void) { uv_once(&uv_default_loop_init_guard_, uv_default_loop_init); return &uv_default_loop_; @@ -117,7 +122,7 @@ uv_loop_t* uv_loop_new(void) { uv_loop_t* loop; /* Initialize libuv itself first */ - uv_once(&uv_init_guard_, uv_init); + uv__once_init(); loop = (uv_loop_t*)malloc(sizeof(uv_loop_t)); diff --git a/src/win/internal.h b/src/win/internal.h index 78762261..186b62c3 100644 --- a/src/win/internal.h +++ b/src/win/internal.h @@ -299,6 +299,8 @@ void uv_prepare_invoke(uv_loop_t* loop); void uv_check_invoke(uv_loop_t* loop); void uv_idle_invoke(uv_loop_t* loop); +void uv__once_init(); + /* * Async watcher