Fix coverity issues 69/304769/2 accepted/tizen/unified/20240131.175407 accepted/tizen/unified/x/20240205.064005
authorYoungwoo Cho <young222.cho@samsung.com>
Tue, 23 Jan 2024 09:44:36 +0000 (18:44 +0900)
committerYoungwoo Cho <young222.cho@samsung.com>
Thu, 25 Jan 2024 10:18:17 +0000 (19:18 +0900)
- MISSING_LOCK

Change-Id: I84fc258facaac6e6c3fff29d403938b58c687422
Signed-off-by: Youngwoo Cho <young222.cho@samsung.com>
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;
 }