summaryrefslogtreecommitdiff
path: root/decoder/threadlocal.h
diff options
context:
space:
mode:
authorredpony <redpony@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-08-11 02:37:10 +0000
committerredpony <redpony@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-08-11 02:37:10 +0000
commit80686d4e567bae579ea39e009826a2de92cd4ace (patch)
treec3c35fcba57dde423a248f38aa121ad197c79734 /decoder/threadlocal.h
parent3c85c407c333899f6b4bc26632d312b8e568b638 (diff)
major refactor, break bad circular deps
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@509 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'decoder/threadlocal.h')
-rwxr-xr-xdecoder/threadlocal.h71
1 files changed, 0 insertions, 71 deletions
diff --git a/decoder/threadlocal.h b/decoder/threadlocal.h
deleted file mode 100755
index d79f5d9d..00000000
--- a/decoder/threadlocal.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef THREADLOCAL_H
-#define THREADLOCAL_H
-
-#ifndef SETLOCAL_SWAP
-# define SETLOCAL_SWAP 0
-#endif
-
-#ifdef BOOST_NO_MT
-
-# define THREADLOCAL
-
-#else
-
-#ifdef _MSC_VER
-
-//FIXME: doesn't work with DLLs ... use TLS apis instead (http://www.boost.org/libs/thread/doc/tss.html)
-# define THREADLOCAL __declspec(thread)
-
-#else
-
-# define THREADLOCAL __thread
-
-#endif
-
-#endif
-
-#include <algorithm> //swap
-
-// naturally, the below are only thread-safe if value is THREADLOCAL
-template <class D>
-struct SaveLocal {
- D &value;
- D old_value;
- SaveLocal(D& val) : value(val), old_value(val) {}
- ~SaveLocal() {
-#if SETLOCAL_SWAP
- swap(value,old_value);
-#else
- value=old_value;
-#endif
- }
-};
-
-template <class D>
-struct SetLocal {
- D &value;
- D old_value;
- SetLocal(D& val,const D &new_value) : value(val), old_value(
-#if SETLOCAL_SWAP
- new_value
-#else
- val
-#endif
- ) {
-#if SETLOCAL_SWAP
- swap(value,old_value);
-#else
- value=new_value;
-#endif
- }
- ~SetLocal() {
-#if SETLOCAL_SWAP
- swap(value,old_value);
-#else
- value=old_value;
-#endif
- }
-};
-
-
-#endif