summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-15 18:07:41 +0000
committerDavid Robillard <d@drobilla.net>2012-08-15 18:07:41 +0000
commita879b58a1f3c30bac5c4174fc6f511f2b8fadf62 (patch)
tree878ca227ca17cbc36d069aebfb610283e2e81d95
parent55603c281a49070bd941e79093cc20a144f9ee4a (diff)
downloadraul-a879b58a1f3c30bac5c4174fc6f511f2b8fadf62.tar.gz
raul-a879b58a1f3c30bac5c4174fc6f511f2b8fadf62.tar.bz2
raul-a879b58a1f3c30bac5c4174fc6f511f2b8fadf62.zip
Remove unnecessary Jack thread bookkeeping stuff.
git-svn-id: http://svn.drobilla.net/lad/trunk/raul@4703 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--raul/ThreadVar.hpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/raul/ThreadVar.hpp b/raul/ThreadVar.hpp
index fde3f81..f786f9c 100644
--- a/raul/ThreadVar.hpp
+++ b/raul/ThreadVar.hpp
@@ -17,16 +17,18 @@
#ifndef RAUL_THREADVAR_HPP
#define RAUL_THREADVAR_HPP
+#include "raul/Noncopyable.hpp"
+
#include <pthread.h>
namespace Raul {
-struct ThreadVarImpl;
-
/** Thread-specific variable.
+ *
+ * A ThreadVar is a variable which has a different value for each thread.
*/
template<typename T>
-class ThreadVar
+class ThreadVar : public Noncopyable
{
public:
ThreadVar(const T& default_value)
@@ -39,6 +41,7 @@ public:
pthread_key_delete(_key);
}
+ /** Set the value for the calling thread. */
ThreadVar& operator=(const T& value) {
T* val = (T*)pthread_getspecific(_key);
if (val) {
@@ -50,15 +53,13 @@ public:
return *this;
}
+ /** Get the value for the calling thread. */
operator T() const {
T* val = (T*)pthread_getspecific(_key);
return val ? *val : _default_value;
}
private:
- ThreadVar(const ThreadVar& noncopyable);
- ThreadVar& operator=(const ThreadVar& noncopyable);
-
static void destroy_value(void* ptr) {
delete (T*)ptr;
}