Subject: Re: poll() emulation in git

From: Paolo Bonzini <[email-masked]>
Date: Wed, 05 Sep 2012 17:25:49 +0200

Il 05/09/2012 15:36, Joachim Schmitz ha scritto:
>>> > > Does your system have a working FIONREAD ioctl for pipes?
>> > 
>> > It does have FIONREAD ioctl. Whether it works properly is to be determined...
>> > I'll test if you could show me how?
> Oh, now I see what you aimed at, but no, that Mac OS X method doesn't work for me, I tried (at least I think I did).
> 
> And <sys/ioctl.h> has
> /*
>  * Normal IOCTL's supported by the socket interface
>  */
> #define FIONREAD        _IOR(0, 8, _ioctl_int)       /* Num of bytes to read */
> #define FIONBIO         _IOW(0, 9, _ioctl_int)       /* Non-blocking I/O     */
> 
> So these seem to be supported on sockets only, I guess.
> And indeed the man pages for ioctl confirms:
> 
>           Valid values for the request parameter for AF_INET or
>           AF_INET6 sockets are:
> 
> 
>           FIONREAD  Gets the number of bytes available for reading and
>                     stores it at the int pointed at by arg.
> 
> 
> So not even AF_UNIX sockets, not to mention pipes...

So there's no way you can support POLLHUP.  Your system is quite
crippled. :(

Paolo