aboutsummaryrefslogtreecommitdiff
path: root/dep/include/g3dlite/G3D/ThreadSet.h
diff options
context:
space:
mode:
authorRat <none@none>2010-06-07 19:35:24 +0200
committerRat <none@none>2010-06-07 19:35:24 +0200
commite4e13c2bb8c691486ac717b206f166f33c8c531a (patch)
treea0ab601406c1396d41527a49392725c8179a6d8a /dep/include/g3dlite/G3D/ThreadSet.h
parent32546e22828e793e3881e1055acb72b6a044e331 (diff)
removed 'dep' folder, no more needed
--HG-- branch : trunk
Diffstat (limited to 'dep/include/g3dlite/G3D/ThreadSet.h')
-rw-r--r--dep/include/g3dlite/G3D/ThreadSet.h87
1 files changed, 0 insertions, 87 deletions
diff --git a/dep/include/g3dlite/G3D/ThreadSet.h b/dep/include/g3dlite/G3D/ThreadSet.h
deleted file mode 100644
index 121f1415a1d..00000000000
--- a/dep/include/g3dlite/G3D/ThreadSet.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef G3D_THREADSET_H
-#define G3D_THREADSET_H
-
-#include "G3D/platform.h"
-#include "G3D/Array.h"
-#include "G3D/ReferenceCount.h"
-#include "G3D/GThread.h"
-#include "G3D/GMutex.h"
-
-namespace G3D {
-
-/** Manages a set of threads. All methods are threadsafe except for
- the iterator begin/end.
-
- @beta*/
-class ThreadSet : public ReferenceCountedObject {
-public:
- /** Intended to allow future use with a template parameter.*/
- typedef GThread Thread;
-
- typedef ReferenceCountedPointer<Thread> ThreadRef;
- typedef ReferenceCountedPointer<ThreadSet> Ref;
- typedef Array<ThreadRef>::Iterator Iterator;
- typedef Array<ThreadRef>::ConstIterator ConstIterator;
-
-private:
-
- /** Protects m_thread */
- GMutex m_lock;
-
- /** Threads in the set */
- Array<ThreadRef> m_thread;
-
-public:
-
- /** Total number of threads (some of which may be completed). */
- int size() const;
-
- /** Number of threads that have been started */
- int numStarted() const;
-
- /** Start all threads that are not currently started.
-
- @param lastThreadBehavior If USE_CURRENT_THREAD, takes the last unstarted thread and executes it manually on
- the current thread. This helps to take full advantage of the machine when
- running a large number of jobs and avoids the overhead of a thread start for single-thread groups.
- Note that this forces start() to block until
- that thread is complete.
- */
- void start(GThread::SpawnBehavior lastThreadBehavior = GThread::USE_NEW_THREAD) const;
-
- /** Terminate all threads that are currently started */
- void terminate() const;
-
- /** Waits until all started threads have completed. */
- void waitForCompletion() const;
-
- /** Remove all (not stopping them) */
- void clear();
-
- /** Removes completed threads and returns the new size.*/
- int removeCompleted();
-
- /** Inserts a new thread, if it is not already present, and
- returns the new number of threads.*/
- int insert(const ThreadRef& t);
-
- /** Removes a thread. Returns true if the thread was present and
- removed. */
- bool remove(const ThreadRef& t);
-
- bool contains(const ThreadRef& t) const;
-
- /** It is an error to mutate the ThreadSet while iterating through it. */
- Iterator begin();
-
- Iterator end();
-
- ConstIterator begin() const;
-
- ConstIterator end() const;
-};
-
-
-} // namespace G3D
-
-#endif