From 207627be28e75a9c8c356be1dc0022ee02fa6bc8 Mon Sep 17 00:00:00 2001
From: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
Date: Tue, 16 Aug 2016 23:07:08 -0400
Subject: [PATCH] video sink: fix data race

possible data race fixed in dtor of ShmHolder.

Coverity CID # 1296815

Change-Id: I85c8158ec8fd8ada8feb28720350f2237a1097f3
Tuleap: #909
---
 src/media/video/sinkclient.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/media/video/sinkclient.cpp b/src/media/video/sinkclient.cpp
index b147d73d42..3c2d4c3a2d 100644
--- a/src/media/video/sinkclient.cpp
+++ b/src/media/video/sinkclient.cpp
@@ -157,8 +157,11 @@ ShmHolder::~ShmHolder()
     if (area_ == MAP_FAILED)
         return;
 
+    ::sem_wait(&area_->mutex);
     area_->frameSize = 0;
-    ::sem_post(&area_->frameGenMutex);
+    ::sem_post(&area_->mutex);
+
+    ::sem_post(&area_->frameGenMutex); // unlock waiting client before leaving
     unMapShmArea();
 }
 
-- 
GitLab