1 #ifndef OPENMW_COMPONENTS_SCENEUTIL_WORKQUEUE_H
2 #define OPENMW_COMPONENTS_SCENEUTIL_WORKQUEUE_H
4 #include <OpenThreads/Atomic>
5 #include <OpenThreads/Mutex>
6 #include <OpenThreads/Condition>
7 #include <OpenThreads/Thread>
9 #include <osg/Referenced>
10 #include <osg/ref_ptr>
57 void addWorkItem(osg::ref_ptr<WorkItem> item,
bool front=
false);
70 std::deque<osg::ref_ptr<WorkItem> >
mQueue;
Internally used by WorkQueue.
Definition: workqueue.hpp:79
virtual void run()
Definition: workqueue.cpp:126
virtual void abort()
Set abort flag in order to return from doWork() as soon as possible. May not be respected by all Work...
Definition: workqueue.hpp:35
A work queue that users can push work items onto, to be completed by one or more background threads...
Definition: workqueue.hpp:48
~WorkQueue()
Definition: workqueue.cpp:53
std::vector< WorkThread * > mThreads
Definition: workqueue.hpp:75
WorkQueue * mWorkQueue
Definition: workqueue.hpp:89
WorkThread(WorkQueue *workQueue)
Definition: workqueue.cpp:120
WorkItem()
Definition: workqueue.cpp:29
void waitTillDone()
Wait until the work is completed. Usually called from the main thread.
Definition: workqueue.cpp:8
unsigned int getNumActiveThreads() const
Definition: workqueue.cpp:109
osg::ref_ptr< WorkItem > removeWorkItem()
Definition: workqueue.cpp:86
bool mIsReleased
Definition: workqueue.hpp:69
OpenThreads::Mutex mMutex
Definition: workqueue.hpp:39
Definition: workqueue.hpp:17
volatile bool mActive
Definition: workqueue.hpp:90
OpenThreads::Condition mCondition
Definition: workqueue.hpp:73
unsigned int getNumItems() const
Definition: workqueue.cpp:103
bool isDone() const
Definition: workqueue.cpp:37
OpenThreads::Mutex mMutex
Definition: workqueue.hpp:72
virtual void doWork()
Override in a derived WorkItem to perform actual work.
Definition: workqueue.hpp:24
OpenThreads::Atomic mDone
Definition: workqueue.hpp:38
WorkQueue(int numWorkerThreads=1)
Definition: workqueue.cpp:42
void addWorkItem(osg::ref_ptr< WorkItem > item, bool front=false)
Definition: workqueue.cpp:70
OpenThreads::Condition mCondition
Definition: workqueue.hpp:40
virtual ~WorkItem()
Definition: workqueue.cpp:33
std::deque< osg::ref_ptr< WorkItem > > mQueue
Definition: workqueue.hpp:70
bool isActive() const
Definition: workqueue.cpp:140
void signalDone()
Internal use by the WorkQueue.
Definition: workqueue.cpp:20