diff --git a/src/media/video/sinkclient.cpp b/src/media/video/sinkclient.cpp index b147d73d427fe2fe5dabb20b5276701d7faeb053..3c2d4c3a2d7bd629269aac07e26a404e385e1e26 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(); }