#ifndef __EVENTQUEUE_H__ #define __EVENTQUEUE_H__ #include #include "util/boostthread.h" template class eventqueue { private: boost::condition _cond; boost::mutex _mtx; std::queue _q; public: void add(T item) { boost::mutex::scoped_lock lock(_mtx); _q.push(item); lock.unlock(); _cond.notify_one(); } void get(T& item) { boost::mutex::scoped_lock lock(_mtx); while (_q.empty()) _cond.wait(lock); item= _q.front(); _q.pop(); } }; #endif