[vlc-devel] Mutex Lock problem

Tommy Tran ducprosoft at yahoo.com
Fri Feb 4 04:11:01 CET 2011

Thanks for the reply Rémi. I acted on a tip from Sunqeen posted on the  forum 
and was able to find out the root cause and fixed the problem. The  problem is 
not in VLC code but rather on my wrapper code. Version 1.1x  updated the extern 
function signature on some functions but I wasn't  aware of it. I was passing in 
the wrong object pointer and the compiler  didn't catch that because they are 
both of the right type.

All is good now :o).


----- Original Message ----
From: Rémi Denis-Courmont <remi at remlab.net>
To: vlc-devel at videolan.org
Cc: Tommy Tran <ducprosoft at yahoo.com>
Sent: Thu, February 3, 2011 5:10:39 AM
Subject: Re: [vlc-devel] Mutex Lock problem


On Thursday 03 February 2011, Tommy Tran wrote:
> Since v1.1.0, a few libvlc extern audio-related functions don't work 
> anymore. As of v1.1.17, the issue still exist. To help with debugging, I 
> picked one function that doesn't work (libvlc_audio_get_channel) and  one
> function that does work (libvlc_audio_get_track) and play the same  media
> file and show the callstack and the values of the related  variables.
> I posted the callstacks on the forum:
> http://forum.videolan.org/viewtopic.php?f=32&t=87115
> Anyone got an idea why the owner thread is non-zero for the "GetChannel"
> case?

Because a thread holds the lock, or the mutex is invalid (dangling pointer).

> Is it OK to call EnterCriticalSelection() when there is an owner
> thread?

Yes, although it should be rare.

> Is it possible that some code is calling EnterCriticalSelection()
> and forgot to call LeaveCriticalSelection()?


Rémi Denis-Courmont

More information about the vlc-devel mailing list