aboutsummaryrefslogtreecommitdiff
path: root/src/shared/Threading.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/Threading.h')
-rw-r--r--src/shared/Threading.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/shared/Threading.h b/src/shared/Threading.h
index ab423696cd1..6c3f3724bc1 100644
--- a/src/shared/Threading.h
+++ b/src/shared/Threading.h
@@ -21,6 +21,7 @@
#include <ace/Thread.h>
#include <ace/TSS_T.h>
+#include "ace/Atomic_Op.h"
#include <assert.h>
#include "Errors.h"
@@ -32,6 +33,15 @@ namespace ACE_Based
public:
virtual ~Runnable() {}
virtual void run() = 0;
+
+ void incReference() { ++m_refs; }
+ void decReference()
+ {
+ if(!--m_refs)
+ delete this;
+ }
+ private:
+ ACE_Atomic_Op<ACE_Thread_Mutex, int> m_refs;
};
enum Priority