Просмотр исходного кода

Furi Thread: fixed furi_thread_join, check if thread has not been started (#1803)

* furi thread: fixed furi_thread_join, check if thread has not been started
* Furi: correct returns in furi_thread_join

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Sergey Gavrilov 3 лет назад
Родитель
Сommit
aba20b6af8
1 измененных файлов с 7 добавлено и 1 удалено
  1. 7 1
      furi/core/thread.c

+ 7 - 1
furi/core/thread.c

@@ -209,11 +209,17 @@ bool furi_thread_join(FuriThread* thread) {
 
     furi_check(furi_thread_get_current() != thread);
 
+    // Check if thread was started
+    if(thread->task_handle == NULL) {
+        return false;
+    }
+
+    // Wait for thread to stop
     while(eTaskGetState(thread->task_handle) != eDeleted) {
         furi_delay_ms(10);
     }
 
-    return FuriStatusOk;
+    return true;
 }
 
 FuriThreadId furi_thread_get_id(FuriThread* thread) {