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

Sean McNamara smcnam at gmail.com
Thu Apr 14 10:07:15 PDT 2011


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.

> Daniel
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at mail.0pointer.de
> https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

More information about the pulseaudio-discuss mailing list