From: Joachim Schmitz Date: Fri, 07 Sep 2012 07:23:59 GMT Subject: RE: poll() emulation in git Message-ID: <000d01cd8cc9$c027a070$4076e150$@schmitz-digital.de> In-Reply-To: <5048BDF6.2000602@gnu.org> > From: Paolo Bonzini [mailto:paolo.bonzini@gmail.com] On Behalf Of Paolo Bonzini > Sent: Thursday, September 06, 2012 5:15 PM > To: Joachim Schmitz > Cc: git@vger.kernel.org; 'Junio C Hamano'; 'Erik Faye-Lund'; bug-gnulib@gnu.org; rsbecker@nexbridge.com > Subject: Re: poll() emulation in git > > Il 06/09/2012 16:44, Joachim Schmitz ha scritto: > >> > Yes, it's an usleep(autocorrect * 100000) basically (poll takes > >> > milliseconds, not micro). > > OK, it is _supposed_ to do this usleep(), but is does not, as poll() returns early with EFAULT in this case: > > /* EFAULT is not necessary to implement, but let's do it in the > > simplest case. */ > > if (!pfd) > > { > > errno = EFAULT; > > return -1; > > } > > > > poll() is doing this before calling select(), so won't sleep. > > So there's a bug in {gnulib|git}'s poll(), right? > > > > Yes, it should be "if (!pfd && nfd)". Are you going to fix this in gnulib? Bye, Jojo