-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
atomic_ref (#2, p0019r8) #843
Merged
Merged
Changes from 141 commits
Commits
Show all changes
145 commits
Select commit
Hold shift + click to select a range
1cf7cad
atomic_ref (#2, p0019r8)
AlexGuteniev 001e340
clang format, volatile overload
AlexGuteniev 75a155d
no really `volatile` overload for atomic_ref
AlexGuteniev 85ba6a2
no really `volatile` overload for atomic_ref
AlexGuteniev 9d610cc
required_alignment
AlexGuteniev 857c620
Don't use _Spinlock
AlexGuteniev 1ca420a
Do use spinlock
AlexGuteniev a522d3b
fix build
AlexGuteniev 25f603b
direction
AlexGuteniev 85c044e
Pointer to object for atomic ref mutex init
AlexGuteniev 2cb4d3e
clang format
AlexGuteniev c938bf2
Correct base for specializations
AlexGuteniev 012bf46
basic operations test
AlexGuteniev da247a6
Fix spinlock initialization
AlexGuteniev 0c38cdc
elaborate test
AlexGuteniev 3e3cd47
better naming
AlexGuteniev 6fdcf4d
better naming
AlexGuteniev f385fa1
warnings fix
AlexGuteniev dac5c6a
get back mutable
AlexGuteniev c8d38df
clang format
AlexGuteniev 3cf38d6
satellite
AlexGuteniev dd33205
feature
AlexGuteniev fc29559
Use SRWLOCK and abandon _Spinlock for atomic_ref
AlexGuteniev e219b71
ref
AlexGuteniev 9229c12
ARM spinlock
AlexGuteniev a266baa
clang format
AlexGuteniev 2f992db
clang format
AlexGuteniev 24f1f01
found a way to use spinlock pointer for atomic_ref
AlexGuteniev b166dd1
clang format
AlexGuteniev e3c2331
missing strong CAS
AlexGuteniev b4973b3
Consistently use value type
AlexGuteniev 15bbdbe
Consistently use value type
AlexGuteniev 4d07c1c
Remove volatile overloads for atomic_ref
AlexGuteniev ef2adde
try to define vNext as well
AlexGuteniev 3b90ac0
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev 49b7f95
Zero pad for potential future redefinition
AlexGuteniev 1be9a85
Warn about misuse
AlexGuteniev 91f3819
clang-format
AlexGuteniev f3e9c76
might
AlexGuteniev fe2e25f
formatting
AlexGuteniev 17297a9
drop static check, keep only runtime
AlexGuteniev 45191a0
drop static check, keep only runtime
AlexGuteniev 8f18bbe
fix tests pass
AlexGuteniev 35388d9
Correct _Init_spinlock_for_ref for current ABI
AlexGuteniev 0ff9148
constexpr
AlexGuteniev 549a856
clang format, const, noexcept
AlexGuteniev cec012a
whitespace
AlexGuteniev f9f876c
fix incorrect test, satisfy required alignment
AlexGuteniev fed136c
clang format
AlexGuteniev a1a34aa
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev f59ed29
fail libcxx test for correct reason
AlexGuteniev 7849930
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev a7dd4bb
Merge branch 'master' into atomic_ref
AlexGuteniev bf1af3f
line ending fix after merge via GitHub web face
AlexGuteniev a4eb73c
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev 5421ee9
Fix merge error
AlexGuteniev 5992ce5
Update stl/inc/atomic
AlexGuteniev a08ebbf
revive atomic_ref<16 bytes>
AlexGuteniev db63179
Merge branch 'atomic_ref' of https://github.com/AlexGuteniev/STL into…
AlexGuteniev 5bf9c93
good mutex
AlexGuteniev 8868246
clang format
AlexGuteniev f35df6b
fix build
AlexGuteniev 64d364e
clang format
AlexGuteniev 2b7bc84
fix build
AlexGuteniev 5829541
implement fallback
AlexGuteniev 68b134f
try to fix tests
AlexGuteniev c9a3baa
go home clang format you're drunk
AlexGuteniev 94b0990
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev 081890d
merge typo fix
AlexGuteniev a9130fe
merge: fix _Ty with _TVal in padding bits part
AlexGuteniev 48262ad
Implement padding bits for 16 byte type
AlexGuteniev 547e775
test coverage for 16 byte type
AlexGuteniev 297a97e
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev 8a81301
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev 516a09c
post merge fixes
AlexGuteniev 456ff02
more post merge fixes
AlexGuteniev 0a3b79e
Apply suggestions from code review
AlexGuteniev 74d925b
clang format
AlexGuteniev 6ec6912
typename
AlexGuteniev a3b1d45
atomic ref wait
AlexGuteniev 7645384
fix cmp 16
AlexGuteniev e24bc24
better fix cmp 16
AlexGuteniev 4d74aeb
empty change to restart build
AlexGuteniev abc9673
Don't use _nf for now
AlexGuteniev fe47a46
copy stuff from <intrin.h>
AlexGuteniev 3ec5506
I don't know how to build on ARM64
AlexGuteniev a1e3c02
I don't know how to build on ARM64
AlexGuteniev b477b45
align
AlexGuteniev 5593227
format
AlexGuteniev 4d44049
Billy's review comment
AlexGuteniev a3b729a
Billy's review comment
AlexGuteniev 9608a3e
arm build
AlexGuteniev bf59db6
"detection" of cmpxchg16b sililar to woa
AlexGuteniev 8c46780
Ban _STD_ATOMIC_ALWAYS_USE_CMPXCHG16B == 0 when _M_ARM64.
BillyONeal 4abebdb
_Spinlock_guard nitpicks.
BillyONeal 690fd0b
Sort msvcp_atomic_wait.src.
BillyONeal 6666848
Fix _STD_ATOMIC_ALWAYS_USE_CMPXCHG16B enforcement on ARM32.
BillyONeal 67b3fb5
Suppress 4324 and ensure entire structure is zeroed.
BillyONeal 318d9c0
Don't define _STD_COMPARE_EXCHANGE_128 for non 64 bit.
BillyONeal 42ea87f
;
AlexGuteniev db0b368
Apply suggestions from code review
AlexGuteniev d6cff23
Apply suggestions from code review
AlexGuteniev 3f0fd34
fix atomic_ref interface
AlexGuteniev da36cb0
Merge branch 'atomic_ref' of https://github.com/AlexGuteniev/STL into…
AlexGuteniev 3fee7e8
clang format
AlexGuteniev 333e585
+store
AlexGuteniev cc99367
more @STL comments
AlexGuteniev c583519
Update stl/src/atomic_wait.cpp
AlexGuteniev ff8a7b4
grammer
AlexGuteniev 909332c
Merge branch 'atomic_ref' of https://github.com/AlexGuteniev/STL into…
AlexGuteniev 508cfd1
more @STL comments
AlexGuteniev a9e165a
no reinterpret cast to bool
AlexGuteniev f925380
this is now superfluous
AlexGuteniev 10c1e9e
_MSC_FULL_VER
AlexGuteniev 69f1d82
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev 2f8e7d3
exclude shared_ptr from atomic_ref test
AlexGuteniev 3c52354
+pad bits
AlexGuteniev 3653311
correctly align atomic_ref
AlexGuteniev 8ef2426
try to fix intrinsic problem
AlexGuteniev 86e887f
cleanup
AlexGuteniev b09b8cc
skip _TVal for facade types
AlexGuteniev 600e5ab
consistent cast syntax
AlexGuteniev 05f1f84
correct is_lock_free
AlexGuteniev 73c026a
correct is_lock_free
AlexGuteniev 52700e2
correct is_lock_free
AlexGuteniev 2aab7ba
clang format
AlexGuteniev 69fc773
build fix
AlexGuteniev 1370b5d
reduce transition
AlexGuteniev 0f9978c
Who said it must be CRITICAL_SECTION?
AlexGuteniev 3702d7b
ARM64
AlexGuteniev 8ae82a5
Windows
AlexGuteniev ca9b076
_STL
AlexGuteniev 2e8638d
clang format
AlexGuteniev 19f596d
space
AlexGuteniev fc26176
missing space
AlexGuteniev be20faa
actually no _TVal here already
AlexGuteniev e6e9ba0
Update stl/inc/yvals_core.h
AlexGuteniev 0def107
STL comments
AlexGuteniev 18d9e8e
nonstatic constexpr
AlexGuteniev c0d809b
never a reference here
AlexGuteniev 6ccb054
clang format
AlexGuteniev d3dcda4
fix atomic ref<16 bytes>
AlexGuteniev ac2ebe7
clang format
AlexGuteniev 60bc35e
update TRANSITION comment
AlexGuteniev a270733
Merge remote-tracking branch 'upstream/master' into atomic_ref
AlexGuteniev File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,14 +6,17 @@ | |
LIBRARY LIBRARYNAME | ||
|
||
EXPORTS | ||
__std_atomic_wait_get_deadline | ||
__std_atomic_wait_get_remaining_timeout | ||
__std_atomic_compare_exchange_128 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @BillyONeal Is there a list of exports that we need to update for the "have the exports changed" build-time test? (I think that might still be MSVC-internal.) Are we running such a check against the atomic_wait satellite yet? |
||
__std_atomic_get_mutex | ||
__std_atomic_has_cmpxchg16b | ||
__std_atomic_notify_all_direct | ||
__std_atomic_notify_all_indirect | ||
__std_atomic_notify_one_direct | ||
__std_atomic_notify_one_indirect | ||
__std_atomic_set_api_level | ||
__std_atomic_wait_direct | ||
__std_atomic_wait_get_deadline | ||
__std_atomic_wait_get_remaining_timeout | ||
__std_atomic_wait_indirect | ||
__std_bulk_submit_threadpool_work | ||
__std_close_threadpool_work | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Copyright (c) Microsoft Corporation. | ||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
|
||
RUNALL_INCLUDE ..\usual_latest_matrix.lst |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you have a use case for this being different than
_DEBUG
? OK to leave as is, just curious.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pinpoint tearing in release, that never happens in debug due to timings and debug allocations