X-Git-Url: http://sraa.de/git/?a=blobdiff_plain;f=dol%2Fsrc%2Fdol%2Fvisitor%2FPipeAndFilter%2Flib%2FCondition.cpp;fp=dol%2Fsrc%2Fdol%2Fvisitor%2FPipeAndFilter%2Flib%2FCondition.cpp;h=4525b377cc5d267282a70ef30001067bacf6eed9;hb=8c411cf24ed0eb889191aaeafd8fa1e69081df42;hp=0000000000000000000000000000000000000000;hpb=dea7a4fb1ed110d3ce6e6d9255103d724bd66c0e;p=jump.git diff --git a/dol/src/dol/visitor/PipeAndFilter/lib/Condition.cpp b/dol/src/dol/visitor/PipeAndFilter/lib/Condition.cpp new file mode 100644 index 0000000..4525b37 --- /dev/null +++ b/dol/src/dol/visitor/PipeAndFilter/lib/Condition.cpp @@ -0,0 +1,31 @@ +#include "Condition.h" + +Condition::Condition(Mutex *mutex) { + //std::cout << "Create Condition." << std::endl; + _mutex = mutex; + _condition = new pthread_cond_t; + pthread_cond_init(_condition, NULL); +} + + +Condition::~Condition() { + //std::cout << "Delete Condition." << std::endl; + pthread_cond_destroy(_condition); + delete _condition; + //std::cout << "Deleted Condition." << std::endl; +} + + +void Condition::notify() { + pthread_cond_signal(_condition); +} + + +void Condition::notifyAll() { + pthread_cond_broadcast(_condition); +} + + +void Condition::wait() { + pthread_cond_wait(_condition, _mutex->getPThreadMutex()); +}