summaryrefslogtreecommitdiff
path: root/libcxx/include/barrier
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/barrier')
-rw-r--r--libcxx/include/barrier14
1 files changed, 8 insertions, 6 deletions
diff --git a/libcxx/include/barrier b/libcxx/include/barrier
index 00e196963f11..fb40757a73fb 100644
--- a/libcxx/include/barrier
+++ b/libcxx/include/barrier
@@ -97,19 +97,21 @@ using __barrier_phase_t _LIBCPP_NODEBUG = uint8_t;
class __barrier_algorithm_base;
-_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI __barrier_algorithm_base*
-__construct_barrier_algorithm_base(ptrdiff_t& __expected);
+[[__gnu__::__returns_nonnull__, __gnu__::__malloc__]] _LIBCPP_AVAILABILITY_SYNC
+ _LIBCPP_EXPORTED_FROM_ABI __barrier_algorithm_base*
+ __construct_barrier_algorithm_base(ptrdiff_t& __expected);
_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI bool
-__arrive_barrier_algorithm_base(__barrier_algorithm_base* __barrier, __barrier_phase_t __old_phase) noexcept;
+__arrive_barrier_algorithm_base([[__gnu__::__nonnull__]] _LIBCPP_NOESCAPE __barrier_algorithm_base* __barrier,
+ __barrier_phase_t __old_phase) noexcept;
-_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void
-__destroy_barrier_algorithm_base(__barrier_algorithm_base* __barrier) noexcept;
+_LIBCPP_AVAILABILITY_SYNC _LIBCPP_EXPORTED_FROM_ABI void __destroy_barrier_algorithm_base(
+ [[__gnu__::__nonnull__]] _LIBCPP_NOESCAPE __barrier_algorithm_base* __barrier) noexcept;
template <class _CompletionF>
class __barrier_base {
ptrdiff_t __expected_;
- unique_ptr<__barrier_algorithm_base, void (*)(__barrier_algorithm_base*)> __base_;
+ unique_ptr<__barrier_algorithm_base, void (*)(_LIBCPP_NOESCAPE __barrier_algorithm_base*)> __base_;
atomic<ptrdiff_t> __expected_adjustment_;
_CompletionF __completion_;
atomic<__barrier_phase_t> __phase_;