From 25ddda6354c4b70bcd8abb79770764d8ee3d6fc3 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 11 Sep 2015 02:08:51 +0200 Subject: Fix detection of terminated dgram pflocal server * libpipe/pipe.c (_pipe_no_readers): Break pipe for connection-less pipes too. --- libpipe/pipe.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'libpipe') diff --git a/libpipe/pipe.c b/libpipe/pipe.c index 9580eb77..c3d2a28b 100644 --- a/libpipe/pipe.c +++ b/libpipe/pipe.c @@ -164,16 +164,15 @@ void _pipe_no_readers (struct pipe *pipe) pipe_free (pipe); else { - if (! pipe_is_connless (pipe)) + /* When there is no reader, we have to break pipe even for + connection-less pipes. */ + pipe->flags |= PIPE_BROKEN; + if (pipe->writers) + /* Wake up writers for the bad news... */ { - pipe->flags |= PIPE_BROKEN; - if (pipe->writers) - /* Wake up writers for the bad news... */ - { - pthread_cond_broadcast (&pipe->pending_writes); - pthread_cond_broadcast (&pipe->pending_write_selects); - pipe_select_cond_broadcast (pipe); - } + pthread_cond_broadcast (&pipe->pending_writes); + pthread_cond_broadcast (&pipe->pending_write_selects); + pipe_select_cond_broadcast (pipe); } pthread_mutex_unlock (&pipe->lock); } -- cgit v1.2.3