[vlc-devel] [PATCH 3/6] demux: adaptive: fix cancellation during refresh playlist
Hugo Beauzée-Luyssen
hugo at beauzee.fr
Wed Sep 20 11:10:37 CEST 2017
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.
> 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)
--
Hugo Beauzée-Luyssen
hugo at beauzee.fr
More information about the vlc-devel
mailing list