OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Barrier.h
Go to the documentation of this file.
1 #ifndef ossimBarrier_HEADER
2 #define ossimBarrier_HEADER 1
4 #include <mutex>
5 #include <condition_variable>
6 #include <atomic>
7 
8 namespace ossim{
9 
70  {
71  public:
78 
82  ~Barrier();
83 
90  void block();
91 
97  void reset();
98 
106  void reset(ossim_int32 maxCount);
107 
108  ossim_int32 getMaxCount()const;
109  ossim_int32 getBlockedCount()const;
110  protected:
113  std::atomic<ossim_int32> m_waitCount;
114  mutable std::mutex m_mutex;
115  std::condition_variable m_conditionalBlock;
116 
122  std::condition_variable m_conditionalWait;
123  };
124 }
125 
126 #endif
std::condition_variable m_conditionalBlock
Definition: Barrier.h:115
This code was derived from https://gist.github.com/mshockwave.
Definition: Barrier.h:8
std::mutex m_mutex
Definition: Barrier.h:114
ossim_int32 m_blockedCount
Definition: Barrier.h:112
Barrier is a class used to block threads so we can synchronize and entry point.
Definition: Barrier.h:69
os2<< "> n<< " > nendobj n
ossim_int32 m_maxCount
Definition: Barrier.h:111
#define OSSIM_DLL
std::condition_variable m_conditionalWait
Will be used for destructing and resetting.
Definition: Barrier.h:122
std::atomic< ossim_int32 > m_waitCount
Definition: Barrier.h:113
int ossim_int32