diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2012-11-16 17:57:15 +0100 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2012-11-16 17:58:42 +0100 |
commit | b6a3b0a6297ee205aa34d357edd55b79f91cdf09 (patch) | |
tree | f962b088681f43d7a17615cad54fedbf938b00f8 /deps/uv/src/unix/loop.c | |
parent | e2bcff9aa75e51b9ba071330fe712180abed03e0 (diff) | |
download | android-node-v8-b6a3b0a6297ee205aa34d357edd55b79f91cdf09.tar.gz android-node-v8-b6a3b0a6297ee205aa34d357edd55b79f91cdf09.tar.bz2 android-node-v8-b6a3b0a6297ee205aa34d357edd55b79f91cdf09.zip |
deps: upgrade libuv to 665a316
Diffstat (limited to 'deps/uv/src/unix/loop.c')
-rw-r--r-- | deps/uv/src/unix/loop.c | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/deps/uv/src/unix/loop.c b/deps/uv/src/unix/loop.c index c70513f3a9..e63f12a622 100644 --- a/deps/uv/src/unix/loop.c +++ b/deps/uv/src/unix/loop.c @@ -29,16 +29,9 @@ int uv__loop_init(uv_loop_t* loop, int default_loop) { unsigned int i; - int flags; uv__signal_global_once_init(); -#if HAVE_KQUEUE - flags = EVBACKEND_KQUEUE; -#else - flags = EVFLAG_AUTO; -#endif - memset(loop, 0, sizeof(*loop)); RB_INIT(&loop->timer_handles); ngx_queue_init(&loop->wq); @@ -48,15 +41,24 @@ int uv__loop_init(uv_loop_t* loop, int default_loop) { ngx_queue_init(&loop->check_handles); ngx_queue_init(&loop->prepare_handles); ngx_queue_init(&loop->handle_queue); + + loop->nfds = 0; + loop->watchers = NULL; + loop->nwatchers = 0; + ngx_queue_init(&loop->pending_queue); + ngx_queue_init(&loop->watcher_queue); + loop->closing_handles = NULL; loop->time = uv_hrtime() / 1000000; loop->async_pipefd[0] = -1; loop->async_pipefd[1] = -1; loop->signal_pipefd[0] = -1; loop->signal_pipefd[1] = -1; + loop->backend_fd = -1; loop->emfile_fd = -1; - loop->ev = (default_loop ? ev_default_loop : ev_loop_new)(flags); - ev_set_userdata(loop->ev, loop); + + if (uv__platform_loop_init(loop, default_loop)) + return -1; uv_signal_init(loop, &loop->child_watcher); uv__handle_unref(&loop->child_watcher); @@ -74,9 +76,6 @@ int uv__loop_init(uv_loop_t* loop, int default_loop) { uv__handle_unref(&loop->wq_async); loop->wq_async.flags |= UV__HANDLE_INTERNAL; - if (uv__platform_loop_init(loop, default_loop)) - return -1; - return 0; } @@ -84,7 +83,6 @@ int uv__loop_init(uv_loop_t* loop, int default_loop) { void uv__loop_delete(uv_loop_t* loop) { uv__signal_loop_cleanup(loop); uv__platform_loop_delete(loop); - ev_loop_destroy(loop->ev); if (loop->async_pipefd[0] != -1) { close(loop->async_pipefd[0]); @@ -101,8 +99,23 @@ void uv__loop_delete(uv_loop_t* loop) { loop->emfile_fd = -1; } + if (loop->backend_fd != -1) { + close(loop->backend_fd); + loop->backend_fd = -1; + } + uv_mutex_lock(&loop->wq_mutex); assert(ngx_queue_empty(&loop->wq) && "thread pool work queue not empty!"); uv_mutex_unlock(&loop->wq_mutex); uv_mutex_destroy(&loop->wq_mutex); + +#if 0 + assert(ngx_queue_empty(&loop->pending_queue)); + assert(ngx_queue_empty(&loop->watcher_queue)); + assert(loop->nfds == 0); +#endif + + free(loop->watchers); + loop->watchers = NULL; + loop->nwatchers = 0; } |