From eba9276e6face6f30f12fba7304aaf1cecc5cc96 Mon Sep 17 00:00:00 2001 From: Thomas Debrunner Date: Thu, 20 Jun 2024 13:29:08 +0200 Subject: [PATCH] system: never call task_delete on nuttx, never force stop tasks --- .../include/px4_platform_common/module.h | 18 +++--------------- platforms/nuttx/src/px4/common/tasks.cpp | 4 +++- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/platforms/common/include/px4_platform_common/module.h b/platforms/common/include/px4_platform_common/module.h index 13e5a5ccae..83e8fbc98f 100644 --- a/platforms/common/include/px4_platform_common/module.h +++ b/platforms/common/include/px4_platform_common/module.h @@ -239,21 +239,9 @@ public: unlock_module(); px4_usleep(10000); // 10 ms lock_module(); - - if (++i > 500 && _task_id != -1) { // wait at most 5 sec - PX4_ERR("timeout, forcing stop"); - - if (_task_id != task_id_is_work_queue) { - px4_task_delete(_task_id); - } - - _task_id = -1; - - delete _object.load(); - _object.store(nullptr); - - ret = -1; - break; + i++; + if (i % 500 == 0) { + PX4_INFO("Waiting for task to stop..."); } } while (_task_id != -1); diff --git a/platforms/nuttx/src/px4/common/tasks.cpp b/platforms/nuttx/src/px4/common/tasks.cpp index 9ad860dc18..283ec71fd2 100644 --- a/platforms/nuttx/src/px4/common/tasks.cpp +++ b/platforms/nuttx/src/px4/common/tasks.cpp @@ -45,6 +45,7 @@ #include #include +#include #include #include #include @@ -88,7 +89,8 @@ int px4_task_spawn_cmd(const char *name, int scheduler, int priority, int stack_ int px4_task_delete(int pid) { - return task_delete(pid); + syslog(LOG_ERR, "Ignoring force task delete on NuttX\n"); + return ERROR; } const char *px4_get_taskname(void)