3 #ifndef OSL_POINTERQUEUE_H
4 #define OSL_POINTERQUEUE_H
7 #include <boost/thread/thread.hpp>
8 #include <boost/thread/condition.hpp>
17 typedef std::deque<boost::shared_ptr<T> >
queue_t;
34 Mutex::scoped_lock lk(
mutex);
39 Mutex::scoped_lock lk(
mutex);
40 data.push_back(boost::shared_ptr<T>());
41 data.back().swap(ptr);
53 return boost::shared_ptr<T>();
58 Mutex::scoped_lock lk(
mutex);
65 Mutex::scoped_lock lk(
mutex);
67 if (result.get() ||
finish)
71 return boost::shared_ptr<T>();
77 boost::this_thread::sleep(boost::posix_time::seconds(seconds));
78 Mutex::scoped_lock lk(
mutex);