Преглед на файлове

Merge branch 'bugfix/pthread_thread_size' into 'master'

pthread: Transform the units of the stack size to the FreeRTOS domain

Closes IDFGH-603

See merge request idf/esp-idf!4375
Ivan Grokhotkov преди 7 години
родител
ревизия
f746b0d761
променени са 1 файла, в които са добавени 5 реда и са изтрити 1 реда
  1. 5 1
      components/pthread/pthread.c

+ 5 - 1
components/pthread/pthread.c

@@ -286,7 +286,11 @@ int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
     pthread->task_arg = task_arg;
     BaseType_t res = xTaskCreatePinnedToCore(&pthread_task_func,
                                              task_name,
-                                             stack_size,
+                                             // stack_size is in bytes. This transformation ensures that the units are
+                                             // transformed to the units used in FreeRTOS.
+                                             // Note: float division of ceil(m / n) ==
+                                             //       integer division of (m + n - 1) / n
+                                             (stack_size + sizeof(StackType_t) - 1) / sizeof(StackType_t),
                                              task_arg,
                                              prio,
                                              &xHandle,