JKSV/source/sys/Task.cpp
2025-09-16 17:59:33 -04:00

36 lines
793 B
C++

#include "sys/Task.hpp"
#include "logging/logger.hpp"
sys::Task::Task()
: m_isRunning(true) {};
sys::Task::Task(sys::threadpool::JobFunction function, sys::Task::TaskData taskData)
: Task()
{
taskData->task = this;
sys::threadpool::push_job(function, taskData);
}
bool sys::Task::is_running() const noexcept { return m_isRunning; }
void sys::Task::complete() noexcept { m_isRunning = false; }
void sys::Task::set_status(std::string_view status)
{
std::lock_guard statusGuard{m_statusLock};
m_status = status;
}
void sys::Task::set_status(std::string &status)
{
std::lock_guard statusGuard{m_statusLock};
m_status = std::move(status);
}
std::string sys::Task::get_status() noexcept
{
std::lock_guard statusGuard{m_statusLock};
return m_status;
}