|
@@ -46,17 +46,25 @@ Task::~Task() {
|
|
|
ESP_LOGD(TAG, "%s()", __func__);
|
|
|
|
|
|
auto task = static_cast<Task *>(arg);
|
|
|
- task->_running = true;
|
|
|
+ task->running_ = true;
|
|
|
task->run(task->arg);
|
|
|
+ ESP_LOGI(TAG, "task (%d, %s) finished", task->id, task->name.c_str());
|
|
|
|
|
|
// TODO call onFinish
|
|
|
- task->_running = false;
|
|
|
+ task->running_ = false;
|
|
|
TaskList::remove(task->id);
|
|
|
vTaskDelete(nullptr);
|
|
|
}
|
|
|
|
|
|
void Task::stop() {
|
|
|
+ if (!running_) {
|
|
|
+ ESP_LOGW(TAG, "%s(%d): not running", __func__, id);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
ESP_LOGI(TAG, "%s(%d)", __func__, id);
|
|
|
+
|
|
|
TaskList::remove(id);
|
|
|
vTaskDelete(handle);
|
|
|
+ running_ = false;
|
|
|
}
|