[vlc-devel] [PATCH 2/2] Made VLCKit's VLCOpenGLVoutView ignore -reshape requests when quit is in progress, thus avoiding a segfault.

Rémi Denis-Courmont remi at remlab.net
Mon Jun 1 09:11:55 CEST 2009


On Mon, 1 Jun 2009 09:04:15 +0200, Malte Tancred <malte at frontbase.com>
wrote:
> So, what does it mean that p_vout->b_die is set? Does it mean one  
> shouldn't try to draw anything anymore, or does it mean something  
> else?

b_die implies vlc_object_kill() was called, which implies the vout was
requested to shut down. *But* this is only an implication. b_die could be
not set even though the object is shutting down, because b_die is not
thread-safe. vlc_object_alive() is a little safer, but even then, you
always have a time window between the time when b_die is written and the
time you are reading it.

In any case, b_die is set by the VLC core, whereas the dangling data
probably comes from another part of the OSX support. This strongly hints at
a race condition within the OSX code (that checking
b_die/vlc_object_alive() cannot fix).

-- 
Rémi Denis-Courmont




More information about the vlc-devel mailing list