lws_service_adjust_timeout optimize
authorAndy Green <andy@warmcat.com>
Wed, 6 Apr 2016 01:39:48 +0000 (09:39 +0800)
committerAndy Green <andy@warmcat.com>
Thu, 7 Apr 2016 10:56:40 +0000 (18:56 +0800)
Make it exit quicker if something is pending

Signed-off-by: Andy Green <andy@warmcat.com>
lib/service.c

index 64a0759..c0820c6 100644 (file)
@@ -369,13 +369,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
 
@@ -384,8 +384,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;