1//===-- PThreadCondition.h --------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// Created by Greg Clayton on 6/16/07. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef __PThreadCondition_h__ 15#define __PThreadCondition_h__ 16 17#include <pthread.h> 18 19class PThreadCondition 20{ 21public: 22 23 PThreadCondition() 24 { 25 ::pthread_cond_init (&m_condition, NULL); 26 } 27 28 ~PThreadCondition() 29 { 30 ::pthread_cond_destroy (&m_condition); 31 } 32 33 pthread_cond_t *Condition() 34 { 35 return &m_condition; 36 } 37 38 int Broadcast() 39 { 40 return ::pthread_cond_broadcast (&m_condition); 41 } 42 43 int Signal() 44 { 45 return ::pthread_cond_signal (&m_condition); 46 } 47 48protected: 49 pthread_cond_t m_condition; 50}; 51 52#endif 53 54