[vlc-devel] commit: poll(): ifndef HAVE_POLL means we don't use poll(), not that it doesn't exist. In OSX poll() is broken for sockets, so we don' t use it. Since poll is a kernel function in OSX however, the kernel implementation was used whenever we used poll(), instead of VLCs private poll() which was the intended behaviour. Renamed poll() to vlc_poll() to prevent this. (Derk-Jan Hartman )

Derk-Jan Hartman hartman at videolan.org
Thu Aug 7 01:42:53 CEST 2008


On 6 aug 2008, at 17:16, Rémi Denis-Courmont wrote:
> Le mercredi 6 août 2008 17:58:47 git version control, vous avez  
> écrit :
>> vlc | branch: master | Derk-Jan Hartman <hartman at videolan.org> |  
>> Wed Aug  6
>> 16:58:02 2008 +0200| [d934fc525f6be873a56c54dd97d0aa8f5fead910] |
>> committer: Derk-Jan Hartman
>>
>> VLCs private poll() which was the
>> intended behaviour. Renamed poll() to vlc_poll() to prevent this.
>
> Oh no, it was NOT the intended behavior. The VLC poll()  
> implementation (which
> I wrote) will _only_ work properly on Winsock. It is not intended  
> for any
> other OS, and explicitly NOT adequate for BSD variants.

OK i'm lost, so I reverted. Lets' start again:
The problem is ticket http://trac.videolan.org/vlc/ticket/1824
VLC SAP service discovery hangs indefinitely on poll() and no data is  
read EVER from any of the file descriptors. VLC also hangs and  
eventually crashes when you tried to quit it. This issue was reported  
on the forum in early May, and i confirmed it in testing on Veda with  
NBs going as far back as the original net_Select to poll() switch.


1: poll() on OSX is broken
2: poll() in vlc works only windows.
3: currently vlc for OSX does not have the define HAVE_POLL and as  
such uses vlc's poll()
4: courmisch says that the poll() problems on OSX shouldn't affect  
it's usage in vlc
5: pdherbemont says that poll() OSX can't use tty's and thus will  
break when used in the rc intf.
6: pdherbemont says he does not have the problem. he tested with  
jones. This indicates that his may be a PPC issue (probably of the  
poll() implementation)

6: if HAVE_POLL is only intended for windows, it should be in a  
windows specific check, not HAVE_POLL right?
7: if OSX POLL is broken, then my commit is needed, and additional  
fixes to vlc_poll() to make it non winsock specific.
8: What about other BSD platforms, which have a similar history of  
buggy poll implementations right ?

Now what ?

DJ


More information about the vlc-devel mailing list