From ee699c0036c1c4d9672b4733be571435f798531d Mon Sep 17 00:00:00 2001 From: Andy Green Date: Mon, 29 Feb 2016 10:34:29 +0800 Subject: [PATCH] libuv when in use skip shutdown close phase Signed-off-by: Andy Green --- lib/libwebsockets.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c index 8d166b09..00217f76 100644 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -337,11 +337,15 @@ just_kill_connection: if (n) lwsl_debug("closing: shutdown ret %d\n", LWS_ERRNO); - lws_change_pollfd(wsi, LWS_POLLOUT, LWS_POLLIN); - wsi->state = LWSS_SHUTDOWN; - lws_set_timeout(wsi, PENDING_TIMEOUT_SHUTDOWN_FLUSH, - context->timeout_secs); - return; + /* libuv: no event available to guarantee completion */ + if (!LWS_LIBUV_ENABLED(context)) { + + lws_change_pollfd(wsi, LWS_POLLOUT, LWS_POLLIN); + wsi->state = LWSS_SHUTDOWN; + lws_set_timeout(wsi, PENDING_TIMEOUT_SHUTDOWN_FLUSH, + context->timeout_secs); + return; + } } #endif