/
Reentrancy and Thread Safety

Reentrancy and Thread Safety

Q

What is Reentrancy and Thread-Safety?

A

Depending on definition Reentrancy (= Interrupt Safety) and Thread Safety are two different things.

Reentrant: Reentrant functions can be called recursively and can be called simultaneously by two or more processes. Reentrant functions are often required in real-time applications or in situations where interrupt code and non-interrupt code must share a function (see Keil).

Thread Safe: Thread-safe code only manipulates shared data structures in a manner that ensures that all threads behave properly and fulfill their design specifications without unintended interaction (see Wikipedia). Thread-Safety is required when using an operating system and functions are called by different threads.

Q

Which Functions are reentrant/ Thread-Safe?

A

Reentrant: Reentrant library function usually end with "_r" and can be found here.

Thread-Safe: When thread safety is required, the developer needs to use thread safe functions. In many cases, thread safety of non thread safe functions can be achieved using Mutex functionalities.




Related content

Stack and Heap
Stack and Heap
Read with this
Execution Context/ Scheduling
Execution Context/ Scheduling
More like this
FreeRTOS Intertask Coordination
FreeRTOS Intertask Coordination
More like this