// Author: Jochen Kerdels #ifndef TBARRIER_H #define TBARRIER_H #include #include #include class TBarrier : public TObject { ClassDef(TBarrier, 1); // Synchronization barrier for TThreads public: TBarrier(UInt_t bSize = 1); ~TBarrier(); void Wait(); void setBarrierSize(UInt_t bSize); UInt_t getBarrierSize(); UInt_t getCurrentCnt(); protected: private: UInt_t fBarrierSize; // number of threads upon which the barrier breaks UInt_t fCurrentCnt; // number of threads inside the barrier TMutex fCondMutex; // internal mutex TCondition fCondition; // internal condition }; #endif // TBARRIER_H