Thread and Timer converted to class (#81)

This commit is contained in:
Ken Van Hoeylandt
2024-11-22 23:08:18 +01:00
committed by GitHub
parent 85e26636a3
commit 854fefa1a1
20 changed files with 550 additions and 679 deletions
@@ -22,7 +22,7 @@ static ServiceData* service_data_alloc() {
auto* data = static_cast<ServiceData*>(malloc(sizeof(ServiceData)));
*data = (ServiceData) {
.mutex = tt_mutex_alloc(MutexTypeNormal),
.thread = thread_alloc_ex(
.thread = new Thread(
"sdcard",
3000, // Minimum is ~2800 @ ESP-IDF 5.1.2 when ejecting sdcard
&sdcard_task,
@@ -31,13 +31,13 @@ static ServiceData* service_data_alloc() {
.last_state = hal::sdcard::StateUnmounted,
.interrupted = false
};
thread_set_priority(data->thread, ThreadPriorityLow);
data->thread->setPriority(Thread::PriorityLow);
return data;
}
static void service_data_free(ServiceData* data) {
tt_mutex_free(data->mutex);
thread_free(data->thread);
delete data->thread;
}
static void service_data_lock(ServiceData* data) {
@@ -79,7 +79,7 @@ static void on_start(Service& service) {
if (get_hardware_config()->sdcard != nullptr) {
ServiceData* data = service_data_alloc();
service.setData(data);
thread_start(data->thread);
data->thread->start();
} else {
TT_LOG_I(TAG, "task not started due to config");
}
@@ -92,7 +92,7 @@ static void on_stop(Service& service) {
data->interrupted = true;
service_data_unlock(data);
thread_join(data->thread);
data->thread->join();
service_data_free(data);
}