P1135R6 The C++20 Synchronization Library
P1643R1 Adding wait/notify To atomic_ref
P1644R0 Adding wait/notify To atomic<shared_ptr<T>>, atomic<weak_ptr<T>>
P1865R1 Adding max() To latch And barrier
The IDE's list of extensionless headers has been updated for VS 2019 16.5.
Feature-test macros as of WG21-N4842:
#define __cpp_lib_atomic_lock_free_type_aliases 201907L
#define __cpp_lib_atomic_flag_test 201907L
#define __cpp_lib_atomic_wait 201907L
#define __cpp_lib_semaphore 201907L
#define __cpp_lib_latch 201907L
#define __cpp_lib_barrier 201907L
@StephanTLavavej , I think this should be marked as work in progress, or, more precisely, need information.
std::atomic or by calling these APIs), because other ways are less appealing:std::barrier (no arrive_and_drop at least), and even std::latch (no count down).Ultimately, atomic wait progress is blocked on lack of information about Windows API, so looks like entire P1135R6 work is blocked on that.
@AlexGuteniev - done, thanks :smile_cat:
I think, info needed can be removed. Atomic wait is in ready for review state, after it is committed, the rest are unblocked.
So, currently the status I think is work in progress:
atomic_ref) will be done is scope of #843 , there is some amount of work, mostly due to exposing 16 bytes lock-free type in atomic ref changeatomic_shared_ptr - did not think about it yet, but seems easy after atomic wait and atomic ref are there.latch and barrier. It is actually currently essential for barrier, since my design decision was to spend more than one bit of size_t on state information, so max() for barrier is less than max ptrdiff_t value.