Я пытаюсь получить функцию для запуска другого потока, а затем возврата, причем поток все еще работает. Кажется, что pthread_detach () позаботится о памяти и еще много чего для меня, хотя я не совсем уверен. Это код для функции:
void function() {
pthread_mutex_lock(&state.continueLoopingMutex);
if(state.continueLooping == true) {
pthread_mutex_unlock(&state.continueLoopingMutex);
return;
}
state.continueLooping = true;
pthread_mutex_unlock(&state.continueLoopingMutex);
pthread_t thread;
pthread_create(&thread, NULL, runLoop, NULL);
pthread_detach(thread);
}
(Цикл остановится, когда continueLooping будет установлен в значение false, после завершения цикла он просто вернется, ничего не делая).
Что-то не так с этой структурой, которая может вызвать утечку памяти и т. Д., О которой мне следует позаботиться?
Спасибо