[vlc-devel] vlc_object_signal removal

Derk-Jan Hartman hartman at videolan.org
Mon Sep 8 15:32:16 CEST 2008


On 7 sep 2008, at 23:40, Pierre d'Herbemont wrote:
> On Sep 7, 2008, at 11:15 PM, Derk-Jan Hartman wrote:
>
>> On 7 sep 2008, at 23:12, Pierre d'Herbemont wrote:
>>> On Sun, Sep 7, 2008 at 8:22 PM, Rémi Denis-Courmont
>>> <rem at videolan.org> wrote:
>>>> Then there is some obscure MacOS X hack whose logic has
>>>> resisted my attempts to make any sense out of it.
>>>
>>> What hack exactly?
>>
>> I think he's talking about intf_RunThread's MonitorLibVLCDeath
>
> Yeah, this one is nasty. We need to make sure that a
> vlc_object_kill( libvlc ) exits our interface thread, even if it is
> blocking main thread.
>
> The interface module that is blocking main thread, will spawn a thread
> that will monitor the intf death.
>
> We need to tell that thread that the intf is dead when libvlc is. That
> is what does MonitorLibVLCDeath.
>
> The vlc_object_signal() is used so that we don't kill libvlc if the
> interface didn't do it. Yet we need to kill MonitorLibVLCDeath(), and
> MonitorLibVLCDeath is wait()-ing for a signal(libvlc), but will exit
> if p_intf is dead.
>
> Yet, this is over engineered, as we always kill libvlc when our main
> thread intf is killed (in osx case). So we could remove that signal().

Is this what is currently deadlocking the OSX build of 1.0.0-git on  
Quit ?

DJ


More information about the vlc-devel mailing list