The atomic_flag type provides the classic test-and-set functionality. It has two states, set (value is non-zero) and clear (value is 0).

In OpenCL C 2.0 Operations on an object of type atomic_flag shall be lock-free, in OpenCL C 3.0 or newer they may be lock-free.

The macro ATOMIC_FLAG_INIT may be used to initialize an atomic_flag to the clear state. An atomic_flag that is not explicitly initialized with ATOMIC_FLAG_INIT is initially in an indeterminate state.

This macro can only be used for atomic objects that are declared in program scope in the global address space with the atomic_flag type.


global atomic_flag guard = ATOMIC_FLAG_INIT;

See Also

Document Notes

For more information, see the OpenCL C Specification

This page is extracted from the OpenCL C Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0