diff --git a/src/platforms/posix/px4_layer/px4_posix_tasks.cpp b/src/platforms/posix/px4_layer/px4_posix_tasks.cpp index 9b3730c7b9..ffcd74f5e1 100644 --- a/src/platforms/posix/px4_layer/px4_posix_tasks.cpp +++ b/src/platforms/posix/px4_layer/px4_posix_tasks.cpp @@ -391,16 +391,19 @@ unsigned long px4_getpid() const char *getprogname() { pthread_t pid = pthread_self(); + const char *prog_name = "UnknownApp"; + + pthread_mutex_lock(&task_mutex); for (int i = 0; i < PX4_MAX_TASKS; i++) { if (taskmap[i].isused && taskmap[i].pid == pid) { - pthread_mutex_lock(&task_mutex); - return taskmap[i].name.c_str(); - pthread_mutex_unlock(&task_mutex); + prog_name = taskmap[i].name.c_str(); } } - return "Unknown App"; + pthread_mutex_unlock(&task_mutex); + + return prog_name; } int px4_prctl(int option, const char *arg2, unsigned pid)