Fix coverity issues 89/305189/1 accepted/tizen_8.0_unified tizen_8.0 accepted/tizen/8.0/unified/20240131.175832
authorYoungwoo Cho <young222.cho@samsung.com>
Tue, 23 Jan 2024 09:44:36 +0000 (18:44 +0900)
committerYoungwoo Cho <young222.cho@samsung.com>
Tue, 30 Jan 2024 01:04:15 +0000 (01:04 +0000)
- MISSING_LOCK

Change-Id: I84fc258facaac6e6c3fff29d403938b58c687422
Signed-off-by: Youngwoo Cho <young222.cho@samsung.com>
(cherry picked from commit 553306804cf44220f9124f4a82f0061ea904c000)

src/esplusplayer/src/esplayer.cpp

index cf41e57..5ac49bb 100644 (file)
@@ -367,15 +367,15 @@ bool EsPlayer::Close() {
     Stop();
   }
   auto op = [this]() noexcept {
-    if (is_msg_task_stop_ == false) {
-      {
-        std::unique_lock<std::mutex> msg_mutex(msg_task_mutex_);
+    {
+      std::unique_lock<std::mutex> msg_mutex(msg_task_mutex_);
+      if (is_msg_task_stop_ == false) {
         is_msg_task_stop_ = true;
+        msg_mutex.unlock();
+        msg_task_cv_.notify_one();
+        if (msg_handler_task_.valid()) msg_handler_task_.wait();
       }
-      msg_task_cv_.notify_one();
-      if (msg_handler_task_.valid()) msg_handler_task_.wait();
     }
-
     if (trackrenderer_) trackrenderer_.reset();
     ResetContextForClose_();
     LOG_LEAVE_P(this);
@@ -1359,6 +1359,8 @@ void EsPlayer::ResetContextForClose_() {
   is_resource_conflicted_ = false;
   app_info_ = PlayerAppInfo();
   src_queue_size_ = SrcQueueSize();
+
+  std::lock_guard<std::mutex> msg_mutex(msg_task_mutex_);
   is_msg_task_stop_ = false;
 }