42 #ifndef SYNCHRONIZED_QUEUE_H_
43 #define SYNCHRONIZED_QUEUE_H_
56 queue_(), mutex_(), cond_(), request_to_end_(false), enqueue_data_(true) { }
61 boost::unique_lock<boost::mutex> lock (mutex_);
73 boost::unique_lock<boost::mutex> lock (mutex_);
75 while (queue_.empty () && (!request_to_end_))
86 result = queue_.front ();
95 boost::unique_lock<boost::mutex> lock (mutex_);
96 request_to_end_ =
true;
103 boost::unique_lock<boost::mutex> lock (mutex_);
104 return static_cast<unsigned int> (queue_.size ());
110 boost::unique_lock<boost::mutex> lock (mutex_);
111 return (queue_.empty ());
118 enqueue_data_ =
false;
120 while (!queue_.empty ())
126 std::queue<T> queue_;
127 mutable boost::mutex mutex_;
128 boost::condition_variable cond_;
130 bool request_to_end_;