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);
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;
}