GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::atomic::is_lock_free(3) C++ Standard Libary std::atomic::is_lock_free(3)

std::atomic::is_lock_free - std::atomic::is_lock_free


bool is_lock_free() const noexcept; (since C++11)
bool is_lock_free() const volatile noexcept;


Checks whether the atomic operations on all objects of this type are lock-free.


(none)


true if the atomic operations on the objects of this type are lock-free, false
otherwise.


All atomic types except for std::atomic_flag may be implemented using mutexes or
other locking operations, rather than using the lock-free atomic CPU instructions.
Atomic types are also allowed to be sometimes lock-free, e.g. if only aligned memory
accesses are naturally atomic on a given architecture, misaligned objects of the
same type have to use locks.


The C++ standard recommends (but does not require) that lock-free atomic operations
are also address-free, that is, suitable for communication between processes using
shared memory.

// Run this code


#include <iostream>
#include <utility>
#include <atomic>


struct A { int a[100]; };
struct B { int x, y; };
int main()
{
std::cout << std::boolalpha
<< "std::atomic<A> is lock free? "
<< std::atomic<A>{}.is_lock_free() << '\n'
<< "std::atomic<B> is lock free? "
<< std::atomic<B>{}.is_lock_free() << '\n';
}


std::atomic<A> is lock free? false
std::atomic<B> is lock free? true


atomic_is_lock_free checks if the atomic type's operations are
(C++11) lock-free
(function template)
specializes atomic operations for
atomic_is_lock_free(std::shared_ptr) std::shared_ptr
(function template)
is_always_lock_free indicates that the type is always lock-free
[static] (C++17) (public static member constant)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.