1.5.11 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.

Non-ConfidentialPDF file icon PDF versionARM DUI0475M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.