comparison Core/MultiThreading/SharedMessageQueue.h @ 995:8c67382f44a7 lua-scripting

limit number of jobs in the scheduler
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 03 Jul 2014 15:58:53 +0200
parents 2d0a347e8cfc
children 7266c37d0354
comparison
equal deleted inserted replaced
994:b3d4f8a30324 995:8c67382f44a7
38 #include <list> 38 #include <list>
39 #include <boost/thread.hpp> 39 #include <boost/thread.hpp>
40 40
41 namespace Orthanc 41 namespace Orthanc
42 { 42 {
43 class SharedMessageQueue 43 class SharedMessageQueue : public boost::noncopyable
44 { 44 {
45 private: 45 private:
46 typedef std::list<IDynamicObject*> Queue; 46 typedef std::list<IDynamicObject*> Queue;
47 47
48 unsigned int maxSize_; 48 unsigned int maxSize_;
50 boost::mutex mutex_; 50 boost::mutex mutex_;
51 boost::condition_variable elementAvailable_; 51 boost::condition_variable elementAvailable_;
52 boost::condition_variable emptied_; 52 boost::condition_variable emptied_;
53 53
54 public: 54 public:
55 SharedMessageQueue(unsigned int maxSize = 0); 55 explicit SharedMessageQueue(unsigned int maxSize = 0);
56 56
57 ~SharedMessageQueue(); 57 ~SharedMessageQueue();
58 58
59 // This transfers the ownership of the message 59 // This transfers the ownership of the message
60 void Enqueue(IDynamicObject* message); 60 void Enqueue(IDynamicObject* message);
61 61