#include "Task.h" Task::Task() { } Task::~Task() { } int Task::sendTask(std::shared_ptr task) { { std::lock_guard lock(m_task_mutex_); task->SetStatus(TaskStep_Waite); m_tasks_.push(task); } m_task_cv_.notify_one(); return 0; } std::shared_ptr Task::GetTask() { std::shared_ptr task; { std::unique_lock lock(m_task_mutex_); m_task_cv_.wait(lock, [this]() { return !m_tasks_.empty(); }); task = std::move(m_tasks_.front()); m_tasks_.pop(); } return task; }