|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ < 700 |
|
# error "CUDA synchronization primitives are only supported for sm_70 and up." |
|
#endif |
|
|
|
#ifndef _CUDA_LATCH |
|
#define _CUDA_LATCH |
|
|
|
#include "atomic" |
|
|
|
#include "detail/__config" |
|
|
|
#include "detail/__pragma_push" |
|
|
|
#include "detail/libcxx/include/latch" |
|
|
|
_LIBCUDACXX_BEGIN_NAMESPACE_CUDA |
|
|
|
template<thread_scope _Sco> |
|
class latch : public std::__latch_base<_Sco> { |
|
public: |
|
_LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR |
|
latch(std::ptrdiff_t __count) |
|
: std::__latch_base<_Sco>(__count) { |
|
} |
|
}; |
|
|
|
_LIBCUDACXX_END_NAMESPACE_CUDA |
|
|
|
#include "detail/__pragma_pop" |
|
|
|
#endif |
|
|