[vlc-devel] Crash in vlc_cancel while input/rtp creation

Rémi Denis-Courmont remi at remlab.net
Fri Mar 12 11:52:01 CET 2010


On Fri, 12 Mar 2010 10:01:13 +0100, Sébastien Escudier
<sebastien-devel at celeos.eu> wrote:
> I have a race condition bug where vlc_cancel(thread id=0) is called on a
> thread
> being created at the same time.
> 
> I would like to know how this is supposed to be avoided ?
> I thought I could call vlc_savecancel before thread creation but I don't
> see it
> anywhere else so it must not be the solution.
> 
> The bug is happening when input thread is opening a rtp stream output
> module.
> The thread is created in rtp.c Add function.
> 
> And at the same time input is destroyed and the thread is cancelled in
> input_Stop -> ObjectKillChildrens

Yeah that sucks. ObjectKillChildrens() is a brittle hack.

In this case, we could simply replace vlc_thread_create()/vlc_object_kill()
with vlc_clone()/vlc_cancel() in the RTP output plugin to avoid
ObjectKillChildrens().

-- 
Rémi Denis-Courmont
http://www.remlab.net
http://fi.linkedin.com/in/remidenis




More information about the vlc-devel mailing list