From 12933f43c984dde44192c8439cc8971029fb619d Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Tue, 27 Aug 2013 22:46:56 +0200 Subject: [PATCH] unix: move loop functions from core.c to loop.c Move uv_default_loop(), uv_loop_new() and uv_loop_delete() to loop.c. --- src/unix/core.c | 41 ------------------------------------- src/unix/internal.h | 2 -- src/unix/loop.c | 50 +++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 45 deletions(-) diff --git a/src/unix/core.c b/src/unix/core.c index a5b340a0..7de85bf6 100644 --- a/src/unix/core.c +++ b/src/unix/core.c @@ -62,9 +62,6 @@ static void uv__run_pending(uv_loop_t* loop); -static uv_loop_t default_loop_struct; -static uv_loop_t* default_loop_ptr; - /* Verify that uv_buf_t is ABI-compatible with struct iovec. */ STATIC_ASSERT(sizeof(uv_buf_t) == sizeof(struct iovec)); STATIC_ASSERT(sizeof(&((uv_buf_t*) 0)->base) == @@ -229,44 +226,6 @@ int uv_is_closing(const uv_handle_t* handle) { } -uv_loop_t* uv_default_loop(void) { - if (default_loop_ptr) - return default_loop_ptr; - - if (uv__loop_init(&default_loop_struct, /* default_loop? */ 1)) - return NULL; - - return (default_loop_ptr = &default_loop_struct); -} - - -uv_loop_t* uv_loop_new(void) { - uv_loop_t* loop; - - if ((loop = malloc(sizeof(*loop))) == NULL) - return NULL; - - if (uv__loop_init(loop, /* default_loop? */ 0)) { - free(loop); - return NULL; - } - - return loop; -} - - -void uv_loop_delete(uv_loop_t* loop) { - uv__loop_delete(loop); -#ifndef NDEBUG - memset(loop, -1, sizeof *loop); -#endif - if (loop == default_loop_ptr) - default_loop_ptr = NULL; - else - free(loop); -} - - int uv_backend_fd(const uv_loop_t* loop) { return loop->backend_fd; } diff --git a/src/unix/internal.h b/src/unix/internal.h index 8559e331..67c847ba 100644 --- a/src/unix/internal.h +++ b/src/unix/internal.h @@ -150,8 +150,6 @@ int uv__async_start(uv_loop_t* loop, struct uv__async* wa, uv__async_cb cb); void uv__async_stop(uv_loop_t* loop, struct uv__async* wa); /* loop */ -int uv__loop_init(uv_loop_t* loop, int default_loop); -void uv__loop_delete(uv_loop_t* loop); void uv__run_idle(uv_loop_t* loop); void uv__run_check(uv_loop_t* loop); void uv__run_prepare(uv_loop_t* loop); diff --git a/src/unix/loop.c b/src/unix/loop.c index 1177b9fe..4c10f0f3 100644 --- a/src/unix/loop.c +++ b/src/unix/loop.c @@ -26,8 +26,54 @@ #include #include +static int uv__loop_init(uv_loop_t* loop, int default_loop); +static void uv__loop_delete(uv_loop_t* loop); -int uv__loop_init(uv_loop_t* loop, int default_loop) { +static uv_loop_t default_loop_struct; +static uv_loop_t* default_loop_ptr; + + +uv_loop_t* uv_default_loop(void) { + if (default_loop_ptr != NULL) + return default_loop_ptr; + + if (uv__loop_init(&default_loop_struct, /* default_loop? */ 1)) + return NULL; + + default_loop_ptr = &default_loop_struct; + return default_loop_ptr; +} + + +uv_loop_t* uv_loop_new(void) { + uv_loop_t* loop; + + loop = malloc(sizeof(*loop)); + if (loop == NULL) + return NULL; + + if (uv__loop_init(loop, /* default_loop? */ 0)) { + free(loop); + return NULL; + } + + return loop; +} + + +void uv_loop_delete(uv_loop_t* loop) { + uv__loop_delete(loop); +#ifndef NDEBUG + memset(loop, -1, sizeof(*loop)); +#endif + if (loop == default_loop_ptr) + default_loop_ptr = NULL; + else + free(loop); +} + + +static int uv__loop_init(uv_loop_t* loop, int default_loop) { unsigned int i; int err; @@ -84,7 +130,7 @@ int uv__loop_init(uv_loop_t* loop, int default_loop) { } -void uv__loop_delete(uv_loop_t* loop) { +static void uv__loop_delete(uv_loop_t* loop) { uv__signal_loop_cleanup(loop); uv__platform_loop_delete(loop); uv__async_stop(loop, &loop->async_watcher);