diff options
author | Manuel Stoeckl <code@mstoeckl.com> | 2023-04-02 19:52:17 -0400 |
---|---|---|
committer | Manuel Stoeckl <code@mstoeckl.com> | 2023-04-02 19:52:17 -0400 |
commit | fca09a120df3d5b6cbe8f0e3e188c8a0ad9277cf (patch) | |
tree | c7c580b931c1ded1ee52e48fc10af7f4f94be93b | |
parent | aba20719cc4661b59e86020a1ec8a6ee37a35c24 (diff) |
Handle pipe poll errors by closing pipe
-rw-r--r-- | src/shadow.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/shadow.c b/src/shadow.c index df60c4a..a1e67f9 100644 --- a/src/shadow.c +++ b/src/shadow.c @@ -2311,6 +2311,16 @@ void mark_pipe_object_statuses( if (pfds[i].revents & POLLOUT) { sfd->pipe.writable = true; } + if (pfds[i].revents & POLLERR) { + wp_debug("Pipe poll returned POLLERR for .pipe_fd=%d, closing", + lfd); + if (sfd->pipe.can_read) { + pipe_close_read(sfd); + } + if (sfd->pipe.can_write) { + pipe_close_write(sfd); + } + } } } |