//===---------------- condition_variable_destructor.cpp ------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

// Define ~condition_variable.
//
// On some platforms ~condition_variable has been made trivial and the
// definition is only provided for ABI compatibility.

#include "__config"
#include "__threading_support"

#if !defined(_LIBCPP_HAS_NO_THREADS)
# if _LIBCPP_ABI_VERSION == 1 || !defined(_LIBCPP_HAS_TRIVIAL_CONDVAR_DESTRUCTION)
#   define NEEDS_CONDVAR_DESTRUCTOR
# endif
#endif

_LIBCPP_BEGIN_NAMESPACE_STD

#ifdef NEEDS_CONDVAR_DESTRUCTOR

class _LIBCPP_TYPE_VIS condition_variable
{
    __libcpp_condvar_t __cv_ = _LIBCPP_CONDVAR_INITIALIZER;
public:
    _LIBCPP_INLINE_VISIBILITY
    constexpr condition_variable() noexcept = default;

    ~condition_variable();

    condition_variable(const condition_variable&) = delete;
    condition_variable& operator=(const condition_variable&)  = delete;
};

condition_variable::~condition_variable()
{
    __libcpp_condvar_destroy(&__cv_);
}
#endif

_LIBCPP_END_NAMESPACE_STD
