[6.1] ed1696efc Don't poll VSM_Status() while there is work to do and no interruptions.

hermunn hermunn at varnish-software.com
Wed Oct 24 09:29:19 UTC 2018


commit ed1696efc92cb6a9aa96d2b8e586be8dbbb1736b
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Thu Oct 4 07:17:58 2018 +0000

    Don't poll VSM_Status() while there is work to do and no interruptions.
    
    Fixes   #2788

diff --git a/lib/libvarnishapi/vut.c b/lib/libvarnishapi/vut.c
index 03cd9f07a..b02644a81 100644
--- a/lib/libvarnishapi/vut.c
+++ b/lib/libvarnishapi/vut.c
@@ -420,7 +420,10 @@ VUT_Main(struct VUT *vut)
 			AZ(c);
 		}
 
-		i = VSLQ_Dispatch(vut->vslq, vut_dispatch, vut);
+		do
+			i = VSLQ_Dispatch(vut->vslq, vut_dispatch, vut);
+		while (i == vsl_more && !vut->sighup && !vut->sigusr1);
+
 		if (i == vsl_more)
 			continue;
 		else if (i == vsl_end) {


More information about the varnish-commit mailing list