bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: poll() emulation in git/gnulib


From: Joachim Schmitz
Subject: RE: poll() emulation in git/gnulib
Date: Wed, 12 Sep 2012 19:02:07 +0200

> From: Paolo Bonzini [mailto:address@hidden On Behalf Of Paolo Bonzini
> Sent: Friday, September 07, 2012 5:25 PM
> To: Joachim Schmitz
> Cc: address@hidden; address@hidden
> Subject: Re: poll() emulation in git/gnulib
> 
> Il 07/09/2012 17:01, Joachim Schmitz ha scritto:
> >> From: Paolo Bonzini [mailto:address@hidden On Behalf Of Paolo Bonzini
> >> Sent: Friday, September 07, 2012 4:47 PM
> >> To: Joachim Schmitz
> >> Cc: address@hidden; address@hidden
> >> Subject: Re: poll() emulation in git/gnulib
> >>
> >> Il 07/09/2012 12:58, Joachim Schmitz ha scritto:
> >>>> From: Paolo Bonzini [mailto:address@hidden On Behalf Of Paolo Bonzini
> >>>> Sent: Friday, September 07, 2012 11:41 AM
> >>>> To: Joachim Schmitz
> >>>> Cc: address@hidden; 'Junio C Hamano'; 'Erik Faye-Lund'; address@hidden; 
> >>>> address@hidden
> >>>> Subject: Re: poll() emulation in git
> >>>>
> >>>> Il 07/09/2012 09:39, Joachim Schmitz ha scritto:
> >>>>>>> I suppose it works to always handle ENOTSOCK that way, even on
> >>>>>>> non-__TANDEM systems.
> >>>>> Will you be fixing this in gnulib? How?
> >>>>
> >>>> I don't have access to the system, so it's best if you post the patches
> >>>> yourself to bug-gnulib and git mailing lists (separately, since the code
> >>>> is cross-pollinated but forked).
> >>>
> >>> Here's the patch hat fixed the problems for me.
> >>> Whether or not to keep the #ifdef __TANDEM and/or to enable the commented 
> >>> additional check, to make it usable for non HP
> NonStop
> > I
> >>> don't know...
> >>
> >> Please remove it,
> >
> > Remove what, just the "#ifdef __TANDEM" and "#endif" or the comment for the 
> > "(r == -1) &&" too?
> >
> >> and change the comment to "some systems can't use
> >> recv() on non-socket, including HP NonStop".
> >
> > OK.
> >
> >> Also please add a ChangeLog.  I'll commit the patch then.
> >
> > An entry in the ChangeLog file, right?
> >
> > Assuming this and that you just want the #ifdef __TANDEM removed:
> >
> > diff --git a/ChangeLog b/ChangeLog
> > index 282e060..8e51746 100644
> > --- a/ChangeLog
> > +++ b/ChangeLog
> > @@ -1,3 +1,8 @@
> > +2012-09-06  Joachim Schmitz <address@hidden>
> > +
> > +   poll: fix for systems that can't recv() on a non-socket
> > +   poll: don't exit early if NULL is the 1st arg to poll()
> > +
> >  2012-09-06  Eric Blake  <address@hidden>
> >
> >         net_if: give more details about the bug being fixeddiff --git 
> > a/lib/poll.c b/lib/poll.c
> > index 5ad9d86..62430bb 100644
> > --- a/lib/poll.c
> > +++ b/lib/poll.c
> > @@ -303,6 +303,10 @@ compute_revents (int fd, int sought, fd_set *rfds, 
> > fd_set *
> >                 || socket_errno == ECONNABORTED || socket_errno == 
> > ENETRESET)
> >          happened |= POLLHUP;
> >
> > +      /* some systems can't use recv() on non-socket, including HP NonStop 
> > */
> > +      else if (/* (r == -1) && */ socket_errno == ENOTSOCK)
> > +        happened |= (POLLIN | POLLRDNORM) & sought;
> > +
> >        else
> >          happened |= POLLERR;
> >      }
> > @@ -350,7 +354,7 @@ poll (struct pollfd *pfd, nfds_t nfd, int timeout)
> >
> >    /* EFAULT is not necessary to implement, but let's do it in the
> >       simplest case. */
> > -  if (!pfd)
> > +  if (!pfd && nfd)
> >      {
> >        errno = EFAULT;
> >        return -1;
> >
> >
> 
> Ok, thanks (will get to it on Monday).

Which Monday? ;-)

Bye, Jojo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]