00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackPosixProcessSync__
00021 #define __JackPosixProcessSync__
00022
00023 #include "JackPosixMutex.h"
00024 #include "JackException.h"
00025 #include <sys/time.h>
00026 #include <unistd.h>
00027
00028 namespace Jack
00029 {
00030
00035 class JackPosixProcessSync : public JackBasePosixMutex
00036 {
00037
00038 private:
00039
00040 pthread_cond_t fCond;
00041
00042 public:
00043
00044 JackPosixProcessSync(const char* name = NULL):JackBasePosixMutex()
00045 {
00046 int res = pthread_cond_init(&fCond, NULL);
00047 ThrowIf(res != 0, JackException("JackBasePosixMutex: could not init the cond variable"));
00048 }
00049
00050 virtual ~JackPosixProcessSync()
00051 {
00052 pthread_cond_destroy(&fCond);
00053 }
00054
00055 bool TimedWait(long usec);
00056 bool LockedTimedWait(long usec);
00057
00058 void Wait();
00059 void LockedWait();
00060
00061 void Signal();
00062 void LockedSignal();
00063
00064 void SignalAll();
00065 void LockedSignalAll();
00066
00067 };
00068
00069 }
00070
00071 #endif
00072