Skip to end of banner
Go to start of banner

Reentrancy and Thread Safety

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

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". Reentrant newlib library functions 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.




  • No labels