Thread safety in the ARM C library
ARM C library functions are either always thread-safe, never thread-safe, or thread-safe in certain circumstances.
In the ARM C library:
Some functions are never thread-safe, for example setlocale().
Some functions are inherently thread-safe, for example memcpy().
Some functions, such as malloc(), can be made thread-safe by implementing the _mutex_* functions.
Other functions are only thread-safe if you pass the appropriate arguments, for example tmpnam().
Threading problems might occur when your application makes use of the ARM C library in a way that is hidden, for example, if the compiler implicitly calls functions that you have not explicitly called in your source code. Familiarity with the thread-safe C library functions and C library functions that are not thread-safe can help you to avoid this type of threading problem, although in general, it is unlikely to arise.