From aaccb796e80513c2c2f1e6b147b572fd4503e39b Mon Sep 17 00:00:00 2001 From: Andy Green 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 --- lib/service.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/service.c b/lib/service.c index 3451e39e4..80e513c54 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;