32 Gate::Gate(
bool pShared) {
35 pthread_mutexattr_t vMutexAttr;
37 pthread_mutexattr_init(&vMutexAttr);
40 pthread_mutexattr_setpshared(&vMutexAttr,PTHREAD_PROCESS_SHARED);
44 pthread_mutexattr_setpshared(&vMutexAttr,PTHREAD_PROCESS_PRIVATE);
47 pthread_mutex_init(&aMutexHandler,&vMutexAttr);
50 pthread_mutexattr_destroy(&vMutexAttr);
52 aMutexPtr =
new mutex();
56 pthread_mutex_lock(&aMutexHandler);
63 pthread_mutex_destroy (&aMutexHandler);
75 pthread_mutex_unlock(&aMutexHandler);
79 aConditionPtr->notify_one();
86 bool vEndLoop =
false;
88 pthread_mutex_lock(&aMutexHandler);
114 unique_lock<mutex> vLock(*aMutexPtr);
123 aConditionPtr->wait(vLock,[&](){