windows: add uv__once_init() that ensures that libuv has been initialized

This commit is contained in:
Brian White 2012-06-02 20:04:44 +02:00 committed by Bert Belder
parent 87f3530a1e
commit 4252240e54
2 changed files with 9 additions and 2 deletions

View File

@ -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));

View File

@ -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