| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include "__config" |
| | #include "__threading_support" |
| |
|
| | #if !defined(_LIBCUDACXX_HAS_NO_THREADS) |
| | #if _LIBCUDACXX_ABI_VERSION == 1 || !defined(_LIBCUDACXX_HAS_TRIVIAL_MUTEX_DESTRUCTION) |
| | #define NEEDS_MUTEX_DESTRUCTOR |
| | #endif |
| | #endif |
| |
|
| | _LIBCUDACXX_BEGIN_NAMESPACE_STD |
| |
|
| | #ifdef NEEDS_MUTEX_DESTRUCTOR |
| | class _LIBCUDACXX_TYPE_VIS mutex |
| | { |
| | __libcpp_mutex_t __m_ = _LIBCUDACXX_MUTEX_INITIALIZER; |
| |
|
| | public: |
| | _LIBCUDACXX_ALWAYS_INLINE _LIBCUDACXX_INLINE_VISIBILITY |
| | constexpr mutex() = default; |
| | mutex(const mutex&) = delete; |
| | mutex& operator=(const mutex&) = delete; |
| | ~mutex() noexcept; |
| | }; |
| |
|
| |
|
| | mutex::~mutex() _NOEXCEPT |
| | { |
| | __libcpp_mutex_destroy(&__m_); |
| | } |
| |
|
| | #endif |
| | _LIBCUDACXX_END_NAMESPACE_STD |
| |
|
| |
|