From: Andy Green Date: Sat, 15 Jul 2017 09:48:37 +0000 (+0800) Subject: libuv: add helper for clean valgrind with foreign loop X-Git-Tag: accepted/tizen/4.0/unified/20171012.191640~50 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Flibwebsockets.git;a=commitdiff_plain;h=a15007269e14e14ad62038b539f563d02b8be11f libuv: add helper for clean valgrind with foreign loop --- diff --git a/lib/libuv.c b/lib/libuv.c index 62681d3..5d58e26 100644 --- a/lib/libuv.c +++ b/lib/libuv.c @@ -262,6 +262,12 @@ static void lws_uv_walk_cb(uv_handle_t *handle, void *arg) uv_close(handle, lws_uv_close_cb); } +LWS_VISIBLE void +lws_close_all_handles_in_loop(uv_loop_t *loop) +{ + uv_walk(loop, lws_uv_walk_cb, NULL); +} + void lws_libuv_destroyloop(struct lws_context *context, int tsi) { diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h index 2e79395..35287be 100644 --- a/lib/libwebsockets.h +++ b/lib/libwebsockets.h @@ -3540,6 +3540,9 @@ lws_uv_getloop(struct lws_context *context, int tsi); LWS_VISIBLE LWS_EXTERN void lws_uv_sigint_cb(uv_signal_t *watcher, int signum); + +LWS_VISIBLE LWS_EXTERN void +lws_close_all_handles_in_loop(uv_loop_t *loop); #endif /* LWS_USE_LIBUV */ ///@} diff --git a/lwsws/main.c b/lwsws/main.c index 6f36771..8688534 100644 --- a/lwsws/main.c +++ b/lwsws/main.c @@ -303,8 +303,9 @@ int main(int argc, char **argv) lws_context_destroy(context); #if (UV_VERSION_MAJOR > 0) // Travis... + lws_close_all_handles_in_loop(&loop); n = 0; - while (n++ < 1024 && uv_loop_close(&loop)) + while (n++ < 4096 && uv_loop_close(&loop)) uv_run(&loop, UV_RUN_NOWAIT); #endif