mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Updated critical section macros with granular locks. Some tasks.c API relied on their callers to enter critical sections. This assumption no longer works under granular locking. Critical sections added to the following functions: - `vTaskInternalSetTimeOutState()` - `xTaskIncrementTick()` - `vTaskSwitchContext()` - `xTaskRemoveFromEventList()` - `vTaskInternalSetTimeOutState()` - `eTaskConfirmSleepModeStatus()` - `xTaskPriorityDisinherit()` - `pvTaskIncrementMutexHeldCount()` Added missing suspensions to the following functions: - `vTaskPlaceOnEventList()` - `vTaskPlaceOnUnorderedEventList()` - `vTaskPlaceOnEventListRestricted()` Fixed the locking in vTaskSwitchContext() vTaskSwitchContext() must aquire both kernel locks, viz., task lock and ISR lock. This is because, vTaskSwitchContext() can be called from either task context or ISR context. Also, vTaskSwitchContext() must not alter the interrupt state prematurely. Co-authored-by: Sudeep Mohanty <sudeep.mohanty@espressif.com> |
||
---|---|---|
.. | ||
atomic.h | ||
CMakeLists.txt | ||
croutine.h | ||
deprecated_definitions.h | ||
event_groups.h | ||
FreeRTOS.h | ||
list.h | ||
message_buffer.h | ||
mpu_prototypes.h | ||
mpu_syscall_numbers.h | ||
mpu_wrappers.h | ||
newlib-freertos.h | ||
picolibc-freertos.h | ||
portable.h | ||
projdefs.h | ||
queue.h | ||
semphr.h | ||
stack_macros.h | ||
StackMacros.h | ||
stdint.readme | ||
stream_buffer.h | ||
task.h | ||
timers.h |