FreeRTOS-Kernel/portable
arctic-alpaca 03db672b8f
Fix race in POSIX port vPortEndScheduler (#1262)
* Fix race in POSIX port `vPortEndScheduler`

The `vPortEndScheduler` checks whether it's a FreeRTOS thread after signalling the scheduler thread to stop. This creates a race between the check and the destruction of the thread key. By moving the signal to the scheduler thread after the check, the race is prevented.

* Code review suggestions

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

---------

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
2025-04-03 14:32:44 +05:30
..
ARMClang
ARMv8M FreeRTOS MPU: Remove MPU region number check (#1261) 2025-03-19 15:01:22 +05:30
BCC/16BitDOS
CCRH/F1Kx Pass core ID to port lock macros (#1212) 2024-12-30 14:28:49 +05:30
CCS Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
CodeWarrior
Common Add xQueueCreateSetStatic method for static allocation of Queue Sets (#1228) 2025-01-22 14:53:35 +05:30
GCC Add support for Vector context save support on RISC-V (#1260) 2025-03-27 15:22:22 +05:30
IAR FreeRTOS MPU: Remove MPU region number check (#1261) 2025-03-19 15:01:22 +05:30
Keil
MemMang Add xPortResetHeapMinimumEverFreeHeapSize to heap5 (#1191) 2024-11-13 13:31:41 +05:30
MikroC/ARM_CM4F Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
MPLAB Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
MSVC-MingW Reinstate "Fix inaccurate ticks in windows port" (#1198) 2025-02-04 11:03:44 +05:30
oWatcom/16BitDOS Fix spelling typos (#1168) 2024-11-01 10:09:49 -07:00
Paradigm/Tern_EE
Renesas Move configASSERT default definition above before including portable.h. (#1185) 2024-11-04 16:35:52 +05:30
Rowley
RVDS Fix the context array size for MPU ports (#1230) 2025-01-25 13:34:03 +05:30
SDCC/Cygnal
Softune
Tasking/ARM_CM4F
template Pass core ID to port lock macros (#1212) 2024-12-30 14:28:49 +05:30
ThirdParty Fix race in POSIX port vPortEndScheduler (#1262) 2025-04-03 14:32:44 +05:30
WizC/PIC18 Fix spelling typos (#1168) 2024-11-01 10:09:49 -07:00
CMakeLists.txt Fix CMake build for RP2040 (#1197) 2024-11-25 10:54:41 +05:30
readme.txt

Each real time kernel port consists of three files that contain the core kernel
components and are common to every port, and one or more files that are
specific to a particular microcontroller and/or compiler.


+ The FreeRTOS/Source/Portable/MemMang directory contains the five sample
memory allocators as described on the https://www.FreeRTOS.org WEB site.

+ The other directories each contain files specific to a particular
microcontroller or compiler, where the directory name denotes the compiler
specific files the directory contains.



For example, if you are interested in the [compiler] port for the [architecture]
microcontroller, then the port specific files are contained in
FreeRTOS/Source/Portable/[compiler]/[architecture] directory.  If this is the
only port you are interested in then all the other directories can be
ignored.