From 10853a4da508c8fa4e80bcb1af94665c9b1727d5 Mon Sep 17 00:00:00 2001 From: Cellie Date: Wed, 21 May 2025 16:20:41 +0200 Subject: [PATCH 1/2] Assign `ownerTask` in `updateCache()` instead of constructor. --- src/OpenStreetMap-esp32.cpp | 1 + src/OpenStreetMap-esp32.h | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/OpenStreetMap-esp32.cpp b/src/OpenStreetMap-esp32.cpp index 5c733e2..fc6e792 100644 --- a/src/OpenStreetMap-esp32.cpp +++ b/src/OpenStreetMap-esp32.cpp @@ -243,6 +243,7 @@ void OpenStreetMap::updateCache(const tileList &requiredTiles, uint8_t zoom) log_i("submitting %i jobs", (int)jobs.size()); + ownerTask = xTaskGetCurrentTaskHandle(); for (const TileJob &job : jobs) { if (xQueueSend(jobQueue, &job, portMAX_DELAY) != pdPASS) diff --git a/src/OpenStreetMap-esp32.h b/src/OpenStreetMap-esp32.h index 6ff0382..1bd6344 100644 --- a/src/OpenStreetMap-esp32.h +++ b/src/OpenStreetMap-esp32.h @@ -71,10 +71,7 @@ namespace class OpenStreetMap { public: - OpenStreetMap() - { - ownerTask = xTaskGetCurrentTaskHandle(); - } + OpenStreetMap() = default; OpenStreetMap(const OpenStreetMap &) = delete; OpenStreetMap &operator=(const OpenStreetMap &) = delete; OpenStreetMap(OpenStreetMap &&other) = delete; From 194ffbd180472a6091754a5a8f0750759c452e46 Mon Sep 17 00:00:00 2001 From: Cellie Date: Wed, 21 May 2025 16:57:23 +0200 Subject: [PATCH 2/2] Move to `startTileWorkerTasks` --- src/OpenStreetMap-esp32.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OpenStreetMap-esp32.cpp b/src/OpenStreetMap-esp32.cpp index fc6e792..1b6e846 100644 --- a/src/OpenStreetMap-esp32.cpp +++ b/src/OpenStreetMap-esp32.cpp @@ -243,7 +243,6 @@ void OpenStreetMap::updateCache(const tileList &requiredTiles, uint8_t zoom) log_i("submitting %i jobs", (int)jobs.size()); - ownerTask = xTaskGetCurrentTaskHandle(); for (const TileJob &job : jobs) { if (xQueueSend(jobQueue, &job, portMAX_DELAY) != pdPASS) @@ -595,8 +594,9 @@ bool OpenStreetMap::startTileWorkerTasks() if (tasksStarted) return true; - const int numCores = ESP.getChipCores(); + ownerTask = xTaskGetCurrentTaskHandle(); + const int numCores = ESP.getChipCores(); for (int core = 0; core < numCores; ++core) { char taskName[16];