diff --git a/include/uv.h b/include/uv.h index f7845467..27c8f847 100644 --- a/include/uv.h +++ b/include/uv.h @@ -334,17 +334,12 @@ UV_EXTERN uv_err_t uv_last_error(uv_loop_t*); UV_EXTERN const char* uv_strerror(uv_err_t err); UV_EXTERN const char* uv_err_name(uv_err_t err); -#ifndef UV_LEAN_AND_MEAN -# define UV_REQ_EXTRA_FIELDS ngx_queue_t active_queue; -#else -# define UV_REQ_EXTRA_FIELDS -#endif #define UV_REQ_FIELDS \ /* public */ \ void* data; \ - UV_REQ_EXTRA_FIELDS \ /* private */ \ + ngx_queue_t active_queue; \ UV_REQ_PRIVATE_FIELDS \ /* read-only */ \ uv_req_type type; \ @@ -378,12 +373,6 @@ struct uv_shutdown_s { }; -#ifndef UV_LEAN_AND_MEAN -# define UV_HANDLE_EXTRA_FIELDS ngx_queue_t active_queue; -#else -# define UV_HANDLE_EXTRA_FIELDS -#endif - #define UV_HANDLE_FIELDS \ /* read-only */ \ uv_loop_t* loop; \ @@ -394,7 +383,6 @@ struct uv_shutdown_s { uv_handle_type type; \ /* private */ \ UV_HANDLE_PRIVATE_FIELDS \ - UV_HANDLE_EXTRA_FIELDS \ /* The abstract base class of all handles. */ struct uv_handle_s { @@ -1659,15 +1647,11 @@ struct uv_loop_s { uv_counters_t counters; /* The last error */ uv_err_t last_err; + /* Loop reference counting */ + unsigned int active_handles; + ngx_queue_t active_reqs; /* User data - use this for whatever. */ void* data; -#ifndef UV_LEAN_AND_MEAN - ngx_queue_t active_reqs; - ngx_queue_t active_handles; -#else - unsigned int active_reqs; - unsigned int active_handles; -#endif }; diff --git a/src/unix/core.c b/src/unix/core.c index 657397be..16ca9227 100644 --- a/src/unix/core.c +++ b/src/unix/core.c @@ -204,8 +204,7 @@ static void uv__poll(uv_loop_t* loop, int block) { static int uv__should_block(uv_loop_t* loop) { - return ngx_queue_empty(&loop->idle_handles) - && !ngx_queue_empty(&loop->active_handles); + return loop->active_handles && ngx_queue_empty(&loop->idle_handles); } diff --git a/src/unix/internal.h b/src/unix/internal.h index 63a2a8bf..eb5be605 100644 --- a/src/unix/internal.h +++ b/src/unix/internal.h @@ -115,11 +115,7 @@ inline static void uv__req_init(uv_loop_t* loop, uv_req_type type) { loop->counters.req_init++; req->type = type; -#ifndef UV_LEAN_AND_MEAN - ngx_queue_insert_tail(&loop->active_reqs, &req->active_queue); -#else - loop->active_reqs++; -#endif + uv__req_register(loop, req); } #define uv__req_init(loop, req, type) \ uv__req_init((loop), (uv_req_t*)(req), (type)) diff --git a/src/unix/loop.c b/src/unix/loop.c index 14743daa..70057656 100644 --- a/src/unix/loop.c +++ b/src/unix/loop.c @@ -36,12 +36,8 @@ int uv__loop_init(uv_loop_t* loop, int default_loop) { memset(loop, 0, sizeof(*loop)); -#ifndef UV_LEAN_AND_MEAN - ngx_queue_init(&loop->active_handles); - ngx_queue_init(&loop->active_reqs); -#endif - RB_INIT(&loop->ares_handles); + ngx_queue_init(&loop->active_reqs); ngx_queue_init(&loop->idle_handles); ngx_queue_init(&loop->check_handles); ngx_queue_init(&loop->prepare_handles); diff --git a/src/uv-common.h b/src/uv-common.h index cede20ba..6e484ef5 100644 --- a/src/uv-common.h +++ b/src/uv-common.h @@ -82,25 +82,11 @@ int uv__tcp_connect6(uv_connect_t* req, struct sockaddr_in6 address, uv_connect_cb cb); -#ifndef UV_LEAN_AND_MEAN - -UNUSED static int uv__has_active_handles(const uv_loop_t* loop) { - return !ngx_queue_empty(&loop->active_handles); -} UNUSED static int uv__has_active_reqs(const uv_loop_t* loop) { return !ngx_queue_empty(&loop->active_reqs); } -UNUSED static void uv__active_handle_add(uv_handle_t* h) { - ngx_queue_insert_tail(&h->loop->active_handles, &h->active_queue); -} - -UNUSED static void uv__active_handle_rm(uv_handle_t* h) { - assert(uv__has_active_handles(h->loop)); - ngx_queue_remove(&h->active_queue); -} - UNUSED static void uv__req_register(uv_loop_t* loop, uv_req_t* req) { ngx_queue_insert_tail(&loop->active_reqs, &req->active_queue); } @@ -110,37 +96,19 @@ UNUSED static void uv__req_unregister(uv_loop_t* loop, uv_req_t* req) { ngx_queue_remove(&req->active_queue); } -#else /* UV_LEAN_AND_MEAN */ UNUSED static int uv__has_active_handles(const uv_loop_t* loop) { return loop->active_handles > 0; } -UNUSED static int uv__has_active_reqs(const uv_loop_t* loop) { - return loop->active_reqs > 0; -} - UNUSED static void uv__active_handle_add(uv_handle_t* h) { h->loop->active_handles++; } UNUSED static void uv__active_handle_rm(uv_handle_t* h) { - assert(h->loop->active_handles > 0); h->loop->active_handles--; } -UNUSED static void uv__req_register(uv_loop_t* loop, uv_req_t* req) { - loop->active_reqs++; - (void) req; -} - -UNUSED static void uv__req_unregister(uv_loop_t* loop, uv_req_t* req) { - assert(loop->active_reqs > 0); - loop->active_reqs--; - (void) req; -} - -#endif /* UV_LEAN_AND_MEAN */ #define uv__active_handle_add(h) uv__active_handle_add((uv_handle_t*)(h)) #define uv__active_handle_rm(h) uv__active_handle_rm((uv_handle_t*)(h)) diff --git a/src/win/core.c b/src/win/core.c index f32b9162..4f546eef 100644 --- a/src/win/core.c +++ b/src/win/core.c @@ -66,13 +66,8 @@ static void uv_loop_init(uv_loop_t* loop) { uv_update_time(loop); -#ifndef UV_LEAN_AND_MEAN - ngx_queue_init(&loop->active_handles); ngx_queue_init(&loop->active_reqs); -#else loop->active_handles = 0; - loop->active_reqs = 0; -#endif loop->pending_reqs_tail = NULL; @@ -215,18 +210,10 @@ static void uv_poll_ex(uv_loop_t* loop, int block) { } } -#ifndef UV_LEAN_AND_MEAN -# define UV_LOOP_ALIVE(loop) \ - (!ngx_queue_empty(&(loop)->active_handles) || \ - !ngx_queue_empty(&(loop)->active_reqs) || \ - (loop)->endgame_handles != NULL) -#else -# define UV_LOOP_ALIVE(loop) \ - ((loop)->active_handles > 0 && \ - (loop)->active_reqs > 0 && \ - (loop)->endgame_handles != NULL) -#endif - +#define UV_LOOP_ALIVE(loop) \ + ((loop)->active_handles > 0 || \ + !ngx_queue_empty(&(loop)->active_reqs) || \ + (loop)->endgame_handles != NULL) #define UV_LOOP_ONCE(loop, poll) \ do { \