From 44a0981c14249947a389c793597332ff82e18983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Tue, 3 May 2016 16:16:30 +0200 Subject: [PATCH] fix px4_task_spawn_cmd: unlock mutex if pthread_create fails --- src/platforms/posix/px4_layer/px4_posix_tasks.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/platforms/posix/px4_layer/px4_posix_tasks.cpp b/src/platforms/posix/px4_layer/px4_posix_tasks.cpp index 88b1e0a728..34761b0952 100644 --- a/src/platforms/posix/px4_layer/px4_posix_tasks.cpp +++ b/src/platforms/posix/px4_layer/px4_posix_tasks.cpp @@ -240,11 +240,13 @@ px4_task_t px4_task_spawn_cmd(const char *name, int scheduler, int priority, int if (rv != 0) { PX4_ERR("px4_task_spawn_cmd: failed to create thread %d %d\n", rv, errno); taskmap[taskid].isused = false; + pthread_mutex_unlock(&task_mutex); free(taskdata); return (rv < 0) ? rv : -rv; } } else { + pthread_mutex_unlock(&task_mutex); free(taskdata); return (rv < 0) ? rv : -rv; }