1061da546Spatrick //===-- PThreadCondition.h --------------------------------------*- C++ -*-===// 2061da546Spatrick // 3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6061da546Spatrick // 7061da546Spatrick //===----------------------------------------------------------------------===// 8061da546Spatrick // 9061da546Spatrick // Created by Greg Clayton on 6/16/07. 10061da546Spatrick // 11061da546Spatrick //===----------------------------------------------------------------------===// 12061da546Spatrick 13*dda28197Spatrick #ifndef LLDB_TOOLS_DEBUGSERVER_SOURCE_PTHREADCONDITION_H 14*dda28197Spatrick #define LLDB_TOOLS_DEBUGSERVER_SOURCE_PTHREADCONDITION_H 15061da546Spatrick 16061da546Spatrick #include <pthread.h> 17061da546Spatrick 18061da546Spatrick class PThreadCondition { 19061da546Spatrick public: PThreadCondition()20061da546Spatrick PThreadCondition() { ::pthread_cond_init(&m_condition, NULL); } 21061da546Spatrick ~PThreadCondition()22061da546Spatrick ~PThreadCondition() { ::pthread_cond_destroy(&m_condition); } 23061da546Spatrick Condition()24061da546Spatrick pthread_cond_t *Condition() { return &m_condition; } 25061da546Spatrick Broadcast()26061da546Spatrick int Broadcast() { return ::pthread_cond_broadcast(&m_condition); } 27061da546Spatrick Signal()28061da546Spatrick int Signal() { return ::pthread_cond_signal(&m_condition); } 29061da546Spatrick 30061da546Spatrick protected: 31061da546Spatrick pthread_cond_t m_condition; 32061da546Spatrick }; 33061da546Spatrick 34061da546Spatrick #endif 35