[vlc-commits] demux/adaptive: Downloader: prevent data-race on destruction

Filip Roséen git at videolan.org
Thu May 18 21:09:06 CEST 2017


vlc | branch: master | Filip Roséen <filip at atch.se> | Thu May 18 17:07:33 2017 +0200| [17cc6f076ea040e47c74fb0f24c9e89f0afe3d44] | committer: Jean-Baptiste Kempf

demux/adaptive: Downloader: prevent data-race on destruction

Writing to killed needs to be protected by the mutex, there is also a
possibility of losing the sent signal unless we do it while the mutex
is acquired (a signal is not a semaphore).

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=17cc6f076ea040e47c74fb0f24c9e89f0afe3d44
---

 modules/demux/adaptive/http/Downloader.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/modules/demux/adaptive/http/Downloader.cpp b/modules/demux/adaptive/http/Downloader.cpp
index 3d7e7c2e2f..afce4597ed 100644
--- a/modules/demux/adaptive/http/Downloader.cpp
+++ b/modules/demux/adaptive/http/Downloader.cpp
@@ -50,8 +50,11 @@ bool Downloader::start()
 
 Downloader::~Downloader()
 {
+    vlc_mutex_lock( &lock );
     killed = true;
     vlc_cond_signal(&waitcond);
+    vlc_mutex_unlock( &lock );
+
     if(thread_handle_valid)
         vlc_join(thread_handle, NULL);
     vlc_mutex_destroy(&lock);



More information about the vlc-commits mailing list