r2241 - in branches/1.1: . bin/varnishd

des at projects.linpro.no des at projects.linpro.no
Thu Nov 8 22:31:16 CET 2007


Author: des
Date: 2007-11-08 22:31:16 +0100 (Thu, 08 Nov 2007)
New Revision: 2241

Modified:
   branches/1.1/
   branches/1.1/bin/varnishd/cache_acceptor_kqueue.c
Log:
Merged revisions 2232 via svnmerge from 
svn+ssh://projects.linpro.no/svn/varnish/trunk/varnish-cache

........
  r2232 | des | 2007-11-08 21:30:06 +0100 (Thu, 08 Nov 2007) | 4 lines
  
  Minimal intervention fix for #162: we can delay arming a kevent, but we
  can't delay disarming it, or we will have a race between the acceptor and
  a worker thread.  This will need revisiting at some later date.
........



Property changes on: branches/1.1
___________________________________________________________________
Name: svnmerge-integrated
   - /trunk/varnish-cache:1-1722,1727-1729,1733,1738,1743-1777,1779-1798,1800-1815,1817,1819,1823,1830-1838,1846,1853-1855,1857-1859,1862,1865-1868,1871-1880,1883-1884,1886,1888-1889,1896,1898,1902-1905,1907,1909,1912-1916,1920-1928,1935-1939,1941-1949,1955,1957-1958,1967-1968,1970-1974,1976-1977,1984,1986-1989,1991-1998,2026,2031-2033,2057,2077-2080,2086,2088,2097,2106-2107,2116,2133,2154,2173,2181,2206,2211-2212,2215-2220,2222-2231
   + /trunk/varnish-cache:1-1722,1727-1729,1733,1738,1743-1777,1779-1798,1800-1815,1817,1819,1823,1830-1838,1846,1853-1855,1857-1859,1862,1865-1868,1871-1880,1883-1884,1886,1888-1889,1896,1898,1902-1905,1907,1909,1912-1916,1920-1928,1935-1939,1941-1949,1955,1957-1958,1967-1968,1970-1974,1976-1977,1984,1986-1989,1991-1998,2026,2031-2033,2057,2077-2080,2086,2088,2097,2106-2107,2116,2133,2154,2173,2181,2206,2211-2212,2215-2220,2222-2232

Modified: branches/1.1/bin/varnishd/cache_acceptor_kqueue.c
===================================================================
--- branches/1.1/bin/varnishd/cache_acceptor_kqueue.c	2007-11-08 21:30:58 UTC (rev 2240)
+++ branches/1.1/bin/varnishd/cache_acceptor_kqueue.c	2007-11-08 21:31:16 UTC (rev 2241)
@@ -66,8 +66,8 @@
 	if (sp->fd < 0)
 		return;
 	EV_SET(&ki[nki], sp->fd, EVFILT_READ, arm, 0, 0, sp);
-	if (++nki == NKEV) {
-		assert(kevent(kq, ki, nki, NULL, 0, NULL) <= 0);
+	if (++nki == NKEV || arm == EV_DELETE) {
+		AZ(kevent(kq, ki, nki, NULL, 0, NULL));
 		nki = 0;
 	}
 }




More information about the varnish-commit mailing list