From e8009155ba4f8a6980a68652e207a412e2157f35 Mon Sep 17 00:00:00 2001
From: Andy Green <andy@warmcat.com>
Date: Wed, 6 Apr 2016 08:36:30 +0800
Subject: [PATCH] lws_service_adjust_timeout optimize

Make it exit quicker if something is pending

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/service.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/lib/service.c b/lib/service.c
index 3451e39e..80e513c5 100644
--- a/lib/service.c
+++ b/lib/service.c
@@ -372,13 +372,13 @@ lws_service_adjust_timeout(struct lws_context *context, int timeout_ms, int tsi)
 
 	/* 1) if we know we are draining rx ext, do not wait in poll */
 	if (pt->rx_draining_ext_list)
-		timeout_ms = 0;
+		return 0;
 
 #ifdef LWS_OPENSSL_SUPPORT
 	/* 2) if we know we have non-network pending data, do not wait in poll */
 	if (lws_ssl_anybody_has_buffered_read_tsi(context, tsi)) {
-		timeout_ms = 0;
-		lwsl_err("ssl buffered read\n");
+		lwsl_info("ssl buffered read\n");
+		return 0;
 	}
 #endif
 
@@ -387,8 +387,7 @@ lws_service_adjust_timeout(struct lws_context *context, int timeout_ms, int tsi)
 		if (pt->ah_pool[n].rxpos != pt->ah_pool[n].rxlen) {
 			/* any ah with pending rx must be attached to someone */
 			assert(pt->ah_pool[n].wsi);
-			timeout_ms = 0;
-			break;
+			return 0;
 		}
 
 	return timeout_ms;
-- 
GitLab