diff options
author | 2007-08-07 11:30:53 +0000 | |
---|---|---|
committer | 2007-08-07 11:30:53 +0000 | |
commit | be0068b178b13906ecacb55af65b42f25950642c (patch) | |
tree | 009463c88bbacd5deb00dde9fb0ae8ebc3d65d2c | |
parent | provide software version of HMAC, so IPsec can actually use the crypto HW; (diff) | |
download | wireguard-openbsd-be0068b178b13906ecacb55af65b42f25950642c.tar.xz wireguard-openbsd-be0068b178b13906ecacb55af65b42f25950642c.zip |
Correctly deal with EOF on pipe wrt kqueue. Based on a fix present
in FreeBSD and NetBSD. OK art@ beck@
-rw-r--r-- | sys/kern/sys_pipe.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c index dda76df3692..bb1985c8dec 100644 --- a/sys/kern/sys_pipe.c +++ b/sys/kern/sys_pipe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sys_pipe.c,v 1.51 2006/11/17 09:21:52 jmc Exp $ */ +/* $OpenBSD: sys_pipe.c,v 1.52 2007/08/07 11:30:53 millert Exp $ */ /* * Copyright (c) 1996 John S. Dyson @@ -735,9 +735,10 @@ pipeclose(struct pipe *cpipe) * If the other side is blocked, wake it up saying that * we want to close it down. */ + cpipe->pipe_state |= PIPE_EOF; while (cpipe->pipe_busy) { wakeup(cpipe); - cpipe->pipe_state |= PIPE_WANT | PIPE_EOF; + cpipe->pipe_state |= PIPE_WANT; tsleep(cpipe, PRIBIO, "pipecl", 0); } |