Commit ed05c0d5 authored by Kristian Lyngstøl's avatar Kristian Lyngstøl

Don't use edge-triggered mode in epoll

Fixes #644


git-svn-id: http://www.varnish-cache.org/svn/trunk@4552 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 2d29ee8a
......@@ -68,10 +68,14 @@ static void
vca_modadd(int fd, void *data, short arm)
{
/* XXX: EPOLLET (edge triggered) can cause rather Bad Things to
* XXX: happen: If NEEV+1 threads get stuck in write(), all threads
* XXX: will hang. See #644.
*/
assert(fd >= 0);
if (data == vca_pipes || data == dotimer_pipe) {
struct epoll_event ev = {
EPOLLIN | EPOLLPRI | EPOLLET, { data }
EPOLLIN | EPOLLPRI , { data }
};
AZ(epoll_ctl(epfd, arm, fd, &ev));
} else {
......
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