Commit 7a47f27e authored by Dag Erling Smørgrav's avatar Dag Erling Smørgrav

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.


git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@2232 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 90de0b4a
......@@ -66,8 +66,8 @@ vca_kq_sess(struct sess *sp, short arm)
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;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment