[pulseaudio-discuss] [PATCH 09/10] Implement some functions for win32

Colin Guthrie gmane at colin.guthr.ie
Sat Jan 15 05:21:07 PST 2011


'Twas brillig, and Maarten Bosmans at 13/01/11 10:17 did gyre and gimble:
> The change I would like to see reviewed, before merging are the read,
> write => pa_read, pa_write changes in fdsem.c
> https://github.com/mkbosmans/pulseaudio/commit/a02aad4471a07d862cdafc11a06b46c8b54aff55#diff-2
> This is necessary, because on windows the code in pipe.c makes a pipe
> out of two sockets instead of file descriptors. That means that a bare
> read/write won't work, because it expects an fd. pa_read/pa_write
> provides a nice wrapper that uses recv/send in case of Windows
> sockets. But as pa_read/pa_write also does a loop to cover up EINTR,
> I'm not sure whether the code is still correct on Linux. (Limited
> testing of this code on Linux reveals no problems though)

I think this commit generally is the one I'm most nervous of (simply
because I'll freely admit I don't know the full repercussions).

Lennart, if you happen to be stuck somewhere rather than making it to
Brisbane, can you comment on this change specifically.

The main issue is that this change introduces a cover up of EINTR as
Maarten mentions above. This could cause infinite loops somewhere and
the change in threaded-mainloop.c may even make debugging client
applications a little strange. I'm not really sure, so your (or other
suitably enlightened beings) opinions would be welcome.

If you want to you can see his full set of changes here:
https://github.com/mkbosmans/pulseaudio/compare/mingw32-build
although I don't think there is anything particularly controversial in
any of the other changes.

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