mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Previously, newlib's _impure_ptr was updated on every context switch to point to the current task's _reent structure. However, this behavior is no longer valid on multi-core systems due to the fact that multiple cores can switch contexts at the same time, thus leading to the corruption of the _impure_ptr. However, Newlib can be compiled with __DYNAMIC_REENT__ enabled which will cause newlib functions to call __getreent() instead in order to obtain the required reent struct. This commit adds dynamic reentrancy support to FreeRTOS: - Added a configNEWLIB_REENTRANT_IS_DYNAMIC to enable dynamic reentrancy support - _impure_ptr is no longer updated with reentrancy is dynamic - Port must provide their own __getreent() that returns the current task's reent struct |
||
---|---|---|
.. | ||
atomic.h | ||
croutine.h | ||
deprecated_definitions.h | ||
event_groups.h | ||
FreeRTOS.h | ||
list.h | ||
message_buffer.h | ||
mpu_prototypes.h | ||
mpu_wrappers.h | ||
portable.h | ||
projdefs.h | ||
queue.h | ||
semphr.h | ||
stack_macros.h | ||
StackMacros.h | ||
stdint.readme | ||
stream_buffer.h | ||
task.h | ||
timers.h |