Browse Source

getprogname on posix: fix locking (mutex was not unlocked in some cases)

sbg
Beat Küng 9 years ago committed by Lorenz Meier
parent
commit
26feb018d9
  1. 11
      src/platforms/posix/px4_layer/px4_posix_tasks.cpp

11
src/platforms/posix/px4_layer/px4_posix_tasks.cpp

@ -391,16 +391,19 @@ unsigned long px4_getpid() @@ -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)

Loading…
Cancel
Save