summaryrefslogtreecommitdiff
path: root/includes/Async.h
diff options
context:
space:
mode:
authorPixel <pixel@nobis-crew.org>2013-01-22 00:32:13 -0800
committerPixel <pixel@nobis-crew.org>2013-01-22 00:32:13 -0800
commit107d87dc983f34e4ff23a4db188baa650ac51f98 (patch)
tree9721dc97d9c2777ab35c3d22909a8fc8e5df92eb /includes/Async.h
parent6f280f3680e9fad24e00dd63a55577c5409945b3 (diff)
Cleaning up some cruft.
Diffstat (limited to 'includes/Async.h')
-rw-r--r--includes/Async.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/includes/Async.h b/includes/Async.h
index 15e0ac7..6c67546 100644
--- a/includes/Async.h
+++ b/includes/Async.h
@@ -14,6 +14,7 @@ typedef void (*IdleReadyCallback_t)(void *);
class AsyncOperation {
protected:
+ AsyncOperation() { }
virtual void run() { }
virtual void finish() { }
virtual void done() { }
@@ -27,6 +28,8 @@ class AsyncOperation {
IdleReadyCallback_t m_idleReadyCallback = NULL;
void * m_idleReadyParam = NULL;
void finalize();
+ AsyncOperation(const AsyncOperation &) = delete;
+ AsyncOperation & operator=(const AsyncOperation &) = delete;
friend class AsyncManager;
friend class AsyncFinishWorker;
@@ -35,6 +38,10 @@ class AsyncOperation {
class AsyncFinishWorker : public Thread {
public:
AsyncFinishWorker(AsyncManager * async, Queue<AsyncOperation> * queue) : m_async(async), m_queue(queue) { }
+ bool stopped() { return m_stopped; }
+ private:
+ AsyncFinishWorker(const AsyncFinishWorker &) = delete;
+ AsyncOperation & operator=(const AsyncFinishWorker &) = delete;
virtual void * proc();
AsyncManager * m_async;
Queue<AsyncOperation> * m_queue;
@@ -44,6 +51,7 @@ class AsyncFinishWorker : public Thread {
class AsyncManager : public Thread {
public:
+ AsyncManager() { }
void setFinishers(int minIdle, int maxIdle) {
AAssert(minIdle < maxIdle, "Minimum number of threads needs to be less than maximum number of threads.");
m_minIdle = minIdle;
@@ -58,6 +66,8 @@ class AsyncManager : public Thread {
virtual void threadExit();
private:
+ AsyncManager(const AsyncManager &) = delete;
+ AsyncManager & operator=(const AsyncManager &) = delete;
void checkIdle();
void killOneFinisher();
void startOneFinisher();