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