[vlc-devel] [PATCH 3/6] demux: adaptive: fix cancellation during refresh playlist
Zhao Zhili
quinkblack at foxmail.com
Wed Sep 20 13:32:36 CEST 2017
Hi Hugo,
On 2017年09月20日 17:10, Hugo Beauzée-Luyssen wrote:
> On Wed, Sep 20, 2017, at 05:49 AM, Zhao Zhili wrote:
>> This patch fixed a crash due to assert failure since mutex is not
>> unlocked before vlc_mutex_destroy().
>> ---
>> modules/demux/adaptive/PlaylistManager.cpp | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/modules/demux/adaptive/PlaylistManager.cpp
>> b/modules/demux/adaptive/PlaylistManager.cpp
>> index 3ee5014..706ece0 100644
>> --- a/modules/demux/adaptive/PlaylistManager.cpp
>> +++ b/modules/demux/adaptive/PlaylistManager.cpp
>> @@ -633,10 +633,12 @@ void PlaylistManager::Run()
>>
>> if(needsUpdate())
>> {
>> + int canc = vlc_savecancel();
> This implies that the below functions are cancellation points, and
> therefor a more correct fix (in my opinion) would be to move the call
> the vlc_cleanup_pop right before the mutex gets unlocked, instead of
> disabling cancellation.
Crash due to unlocked mutex is what I encountered, but I think it's not the
only risk. A cleanup handler doesn't solve the issue completely. The thread
should exit by plan.
>> if(updatePlaylist())
>> scheduleNextUpdate();
>> else
>> failedupdates++;
>> + vlc_restorecancel(canc);
>> }
>>
>> vlc_mutex_lock(&demux.lock);
>> --
>> 2.7.4
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>> Email had 1 attachment:
>> + 0003-demux-adaptive-fix-cancellation-during-refresh-playl.patch
>> 1k (text/x-patch)
>
More information about the vlc-devel
mailing list