[pulseaudio-discuss] [PATCH] pa_poll(): Simplify detectin of invalid fds in select() emulation mode

Colin Guthrie gmane at colin.guthr.ie
Fri Apr 15 08:04:34 PDT 2011


'Twas brillig, and Daniel Mack at 15/04/11 11:54 did gyre and gimble:
> On Thu, Apr 14, 2011 at 7:07 PM, Sean McNamara <smcnam at gmail.com> wrote:
>> Hi,
>>
>> On Thu, Apr 14, 2011 at 9:57 AM, Daniel Mack <zonque at gmail.com> wrote:
>>> On Thu, Apr 14, 2011 at 3:53 PM, Maarten Bosmans <mkbosmans at gmail.com> wrote:
>>>> 2011/4/14 Daniel Mack <zonque at gmail.com>:
>>>>> On Thu, Apr 14, 2011 at 12:46 AM, Maarten Bosmans <mkbosmans at gmail.com> wrote:
>>>>>> return (fd >= 0) && (fcntl(fd, F_GETFL) != -1);
>>>>>>
>>>>>> For Windows, both fcntl and F_GETFL are not available.
>>>>>
>>>>> Sigh. Ok, thanks for the feedback. Attached is a new patch which keeps
>>>>> things as they are for Windows but fixes the problem for OS X.
>>>>
>>>> That should do it, yes.
>>>>
>>>> +#else /* !OS_IS_WINDOWS */
>>>> Minor: this is not exactly the symbol used in the #ifdef.
>>>
>>> Ok.
>>>
>>>> Anyway, isn't the #else only supposed to be used for OSX? In that case
>>>> the comment should probably say so.
>>>
>>> No, it's actually really a workaround for Windows as we don't have
>>> fcntl() there. (Just curious - the header file does exist, right? I
>>> saw it being included by quite a lot of other source files in the PA
>>> tree ...)
>>
>> The fcntl.h header *does* exist in MSVC (and in MingW...) but the core
>> Microsoft C Runtime doesn't actually export the fcntl function. On
>> Windows, fcntl header only exists to expose the O_* hexadecimal
>> #defines for the flags for the open() call, which *is* supported.
>>
>> The only fcntl on Windows comes if you use an alternative C library,
>> such as Cygwin's port of newlib or glibc. The native stack doesn't
>> supply it.
> 
> Ok, thanks for expaining. Colin, can you pick the latest patch from
> this thread then and apply? Or do you want me to push it and send a
> pull request?

I'll grab it from here but will likely wait until next week as am on my
holidays just now :)

Cheers

Col

-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]




More information about the pulseaudio-discuss mailing list