CondSh.h 444 B

1234567891011121314
  1. #ifndef __CONDSH_H__
  2. #define __CONDSH_H__
  3. #include <boost/thread.hpp>
  4. template <typename T> struct CondSh
  5. {
  6. T data;
  7. boost::condition_variable cond;
  8. boost::mutex mx;
  9. CondSh(){};
  10. CondSh(T t){data = t;};
  11. void set(T t){mx.lock();data=t;mx.unlock();}; //set data
  12. void setn(T t){mx.lock();data=t;mx.unlock();cond.notify_all();}; //set data and notify
  13. T get(){boost::unique_lock<boost::mutex> lock(mx); return data;};
  14. };#endif // __CONDSH_H__