You copied the Doc URL to your clipboard.

Standard library concurrency constructs [ALPHA]

The C++ standard library, beginning with the C++11 standard, provides various high-level concurrency constructs. Presently, these constructs are spread across the headers <atomic>, <chrono>, <mutex>, <shared_mutex>, <condition_variable>, <thread>, and <future>.

Note

This topic describes an [ALPHA] feature. See Support level definitions.

The following sections identify how the functionality of each of these headers maps to the Arm® Compiler thread porting API introduced in Arm® C++ libraries and multithreading [ALPHA]. They also identify any additional dependencies or expected limitations.

<atomic>

The functionality of this header does not depend on the thread porting API.

The following table summarizes the level of support for the <atomic> header on various Arm architectures.

Architecture T (Template parameter) atomic<T> atomic<T*>
Armv7‑A, Armv7‑R, Armv8‑A, Armv8‑R Any types Supported Supported
Armv7‑M, Armv8‑M Integral types (including <stdint.h> defined types) Supported Supported
Armv7‑M, Armv8‑M Complex types Unsupported Supported
Armv6‑M Any types Unsupported Unsupported

None of the targets support the functions atomic_thread_fence() and atomic_signal_fence().

<chrono>

This header requires a full implementation of the Clocks [ALPHA] section of the thread porting API.

<mutex>, <shared_mutex>

These headers require a full implementation of the Mutexes [ALPHA] section of the thread porting API. In addition, the time-related subset of constructs (for example, std::timed_mutex and std::recursive_timed_mutex) defined in these headers requires an implementation of the Clocks [ALPHA] section of the porting API.

<condition_variable>

This header requires a full implementation of the Condition variables [ALPHA] section of the thread porting API. In addition, the time-related subset of constructs (for example, std::condition_variable::wait_for()) defined in this header requires an implementation of the Clocks [ALPHA] section of the porting API.

<thread>, <future>

These headers require a full implementation of the Threads [ALPHA] section of the thread porting API. In addition, the time-related subset of constructs (for example, std::thread::sleep_until() and std::future::wait_for()) defined in these headers requires an implementation of the Clocks [ALPHA] section of the porting API.

Was this page helpful? Yes No