@@ -169,37 +169,38 @@ static void __libcpp_atomic_notify(void const volatile* __location) {
169
169
&__entry->__platform_state ,
170
170
false /* when laundering, we can't handle notify_one */ );
171
171
}
172
- _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one (void const volatile * __location) {
172
+ _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one (void const volatile * __location) noexcept {
173
173
__libcpp_atomic_notify (__location);
174
174
}
175
- _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all (void const volatile * __location) {
175
+ _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all (void const volatile * __location) noexcept {
176
176
__libcpp_atomic_notify (__location);
177
177
}
178
- _LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t __libcpp_atomic_monitor (void const volatile * __location) {
178
+ _LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t __libcpp_atomic_monitor (void const volatile * __location) noexcept {
179
179
auto const __entry = __libcpp_contention_state (__location);
180
180
return __libcpp_contention_monitor_for_wait (&__entry->__contention_state , &__entry->__platform_state );
181
181
}
182
- _LIBCPP_EXPORTED_FROM_ABI void __libcpp_atomic_wait (void const volatile * __location, __cxx_contention_t __old_value) {
182
+ _LIBCPP_EXPORTED_FROM_ABI void
183
+ __libcpp_atomic_wait (void const volatile * __location, __cxx_contention_t __old_value) noexcept {
183
184
auto const __entry = __libcpp_contention_state (__location);
184
185
__libcpp_contention_wait (&__entry->__contention_state , &__entry->__platform_state , __old_value);
185
186
}
186
187
187
188
/* When the incoming atomic happens to be the platform wait size, we still need to use the
188
189
table for the contention detection, but we can use the atomic directly for the wait. */
189
190
190
- _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one (__cxx_atomic_contention_t const volatile * __location) {
191
+ _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_one (__cxx_atomic_contention_t const volatile * __location) noexcept {
191
192
__libcpp_contention_notify (&__libcpp_contention_state (__location)->__contention_state , __location, true );
192
193
}
193
- _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all (__cxx_atomic_contention_t const volatile * __location) {
194
+ _LIBCPP_EXPORTED_FROM_ABI void __cxx_atomic_notify_all (__cxx_atomic_contention_t const volatile * __location) noexcept {
194
195
__libcpp_contention_notify (&__libcpp_contention_state (__location)->__contention_state , __location, false );
195
196
}
196
197
// This function is never used, but still exported for ABI compatibility.
197
198
_LIBCPP_EXPORTED_FROM_ABI __cxx_contention_t
198
- __libcpp_atomic_monitor (__cxx_atomic_contention_t const volatile * __location) {
199
+ __libcpp_atomic_monitor (__cxx_atomic_contention_t const volatile * __location) noexcept {
199
200
return __libcpp_contention_monitor_for_wait (&__libcpp_contention_state (__location)->__contention_state , __location);
200
201
}
201
202
_LIBCPP_EXPORTED_FROM_ABI void
202
- __libcpp_atomic_wait (__cxx_atomic_contention_t const volatile * __location, __cxx_contention_t __old_value) {
203
+ __libcpp_atomic_wait (__cxx_atomic_contention_t const volatile * __location, __cxx_contention_t __old_value) noexcept {
203
204
__libcpp_contention_wait (&__libcpp_contention_state (__location)->__contention_state , __location, __old_value);
204
205
}
205
206
0 commit comments