[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] poll, select: handle ERROR_BROKEN_PIPE.
From: |
Erik Faye-Lund |
Subject: |
Re: [PATCH] poll, select: handle ERROR_BROKEN_PIPE. |
Date: |
Mon, 23 Aug 2010 10:02:05 +0200 |
On Mon, Aug 23, 2010 at 9:46 AM, Paolo Bonzini <address@hidden> wrote:
> Hi Erik, this is what I'm applying.
>
> * lib/poll.c (win32_compute_revents): Return POLLHUP when
> PeekNamedPipe fails with ERROR_BROKEN_PIPE.
> * lib/select.c (win32_compute_revents): Do not mark a pipe
> as writeable if PeekNamedPipe fails with ERROR_BROKEN_PIPE.
> ---
> ChangeLog | 9 +++++++++
> lib/poll.c | 2 ++
> lib/select.c | 2 ++
> 3 files changed, 13 insertions(+), 0 deletions(-)
>
> diff --git a/ChangeLog b/ChangeLog
> index 1337347..7a08510 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,12 @@
> +2010-08-22 Paolo Bonzini <address@hidden>
> + Erik Faye-Lund <address@hidden>
> +
> + poll, select: handle ERROR_BROKEN_PIPE.
> + * lib/poll.c (win32_compute_revents): Return POLLHUP when
> + PeekNamedPipe fails with ERROR_BROKEN_PIPE.
> + * lib/select.c (win32_compute_revents): Do not mark a pipe
> + as writeable if PeekNamedPipe fails with ERROR_BROKEN_PIPE.
> +
> 2010-08-22 Giuseppe Scrivano <address@hidden>
>
> fts: allow compilation with C++
> diff --git a/lib/poll.c b/lib/poll.c
> index 49c4159..aeb7a35 100644
> --- a/lib/poll.c
> +++ b/lib/poll.c
> @@ -150,6 +150,8 @@ win32_compute_revents (HANDLE h, int *p_sought)
> if (avail)
> happened |= *p_sought & (POLLIN | POLLRDNORM);
> }
> + else if (GetLastError () == ERROR_BROKEN_PIPE)
> + happened |= POLLHUP;
>
> else
> {
> diff --git a/lib/select.c b/lib/select.c
> index 5677fdd..bc02266 100644
> --- a/lib/select.c
> +++ b/lib/select.c
> @@ -132,6 +132,8 @@ win32_poll_handle (HANDLE h, int fd, struct bitset
> *rbits, struct bitset *wbits,
> if (avail)
> read = TRUE;
> }
> + else if (GetLastError () == ERROR_BROKEN_PIPE)
> + ;
>
> else
> {
> --
> 1.7.1
>
>
Looks good to me, thanks!