FreeRTOS / FreeRTOS-Kernel

FreeRTOS kernel files only, submoduled into https://github.com/FreeRTOS/FreeRTOS and various other repos.
https://www.FreeRTOS.org
MIT License
2.76k stars 1.12k forks source link

[Feature Request] Add API to get task base priority. #811

Closed Spamfast closed 1 year ago

Spamfast commented 1 year ago

We use FreeRTOS a lot but come up against a snag when implementing temporary task priority boosting functionality.

The problem is that when mutexes are enabled in FreeRTOSConfig.h the value set by vTaskPrioritySet() is the base priority but the value returned by uxTaskPriorityGet() is the dynamic priority which may not be the same if the task currently owns a mutex that is waited on by a higher priority thread. So a task can't get its base priority, change it for a while and then restore it.

We work around this using vTaskGetInfo() to implement a uxTaskBasePriorityGet() but that is very inefficient.

It would be far better if the functionality were implemented in task.c and exposed in task.h.

chinglee-iot commented 1 year ago

Thank you for the suggestion. We would discuss about this API and later reply in this thread.

kar-rahul-aws commented 1 year ago

Closing the issue, since the fix has been merged in the PR.