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