esp-idf/components/freertos
Darian Leung d465316f0b freertos: Fix event group task list race condition
FreeRTOS synchronization primitives (e.g., queues, eventgroups) use various event lists (i.e., task lists) to track what
tasks are blocked on a current primitive. Usually these event lists are accessed via one of the event lists functions
(such as vTask[PlaceOn|RemoveFrom]UnorderedEventList()), which in turn ensure that the global task list spinlock
(xTaskQueueMutex) is taken when accessing these lists.

However, some functions in event_groups.c manually traverse their event lists. Thus if a tick interrupt occurs on
another core during traversal and that tick interrupt unblocks a task on the event list being traversed, the event list
will be corrupted.

This commit modifies the following event_groups.c functions so that they take the global task list lock before
traversing their event list.

- xEventGroupSetBits()
- vEventGroupDelete()
2022-07-19 12:03:04 +08:00
..
esp_additions freertos: add return value to API vTaskGetSnapshot 2022-06-09 21:13:23 +05:30
include freertos: Fix event group task list race condition 2022-07-19 12:03:04 +08:00
port Merge branch 'bugfix/main_task_on_cpu1_startup_failure_v4.4' into 'release/v4.4' 2022-07-10 15:36:05 +08:00
test spinlock: fixed spinlocks not working on S3 if placed in PSRAM 2022-06-09 10:39:19 +08:00
CMakeLists.txt freertos: updated the location of FreeRTOSConfig.h 2021-09-14 08:46:01 +05:30
component.mk freertos: updated the location of FreeRTOSConfig.h 2021-09-14 08:46:01 +05:30
croutine.c upgrade freertos version and history 2021-09-02 11:02:34 +08:00
event_groups.c freertos: Fix event group task list race condition 2022-07-19 12:03:04 +08:00
freertos_v8_compat.c freertos: add xQueueGenericReceive for backward compatibility 2020-11-27 19:08:42 +05:30
FreeRTOS-openocd.c freertos: fix defining uxTopUsedPriority for esp32s2beta 2019-10-29 16:38:48 +01:00
GitHub-FreeRTOS-Kernel-Home.url freertos: upgrade to 10.4.3 - missing files from upstream 2021-09-06 14:39:48 +08:00
History.txt upgrade freertos version and history 2021-09-02 11:02:34 +08:00
Kconfig freertos: add kconfig options for task snapshot functions 2021-09-01 15:13:48 +08:00
LICENSE.md freertos: upgrade to 10.4.3 - missing files from upstream 2021-09-06 14:39:48 +08:00
linker.lf freertos: upgrade to 10.4.3 - rename xaskRemoveFromUnorderedEventList 2021-10-01 13:28:42 +08:00
list.c freertos: upgrade to 10.4.3 -- extras 2021-09-09 11:54:47 +08:00
queue.c freertos: Add portTRY_ENTRY_CRITICAL() and deprecate legacy spinlock fucntions 2021-11-22 18:42:10 +08:00
Quick_Start_Guide.url freertos: upgrade to 10.4.3 - missing files from upstream 2021-09-06 14:39:48 +08:00
sdkconfig.rename freertos: always enable static allocation 2020-12-29 16:18:04 +01:00
stream_buffer.c Merge branch 'feature/freertos_try_enter_critical_v4.4' into 'release/v4.4' 2021-12-08 10:10:17 +00:00
tasks.c freertos: Fix event group task list race condition 2022-07-19 12:03:04 +08:00
timers.c freertos: Add portTRY_ENTRY_CRITICAL() and deprecate legacy spinlock fucntions 2021-11-22 18:42:10 +08:00