libuv: add helper for clean valgrind with foreign loop
authorAndy Green <andy@warmcat.com>
Sat, 15 Jul 2017 09:48:37 +0000 (17:48 +0800)
committerAndy Green <andy@warmcat.com>
Tue, 18 Jul 2017 20:10:07 +0000 (04:10 +0800)
lib/libuv.c
lib/libwebsockets.h
lwsws/main.c

index 62681d3..5d58e26 100644 (file)
@@ -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)
 {
index 2e79395..35287be 100644 (file)
@@ -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 */
 ///@}
 
index 6f36771..8688534 100644 (file)
@@ -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