summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Dyer <cdyer@cs.cmu.edu>2011-03-23 22:53:44 -0400
committerChris Dyer <cdyer@cs.cmu.edu>2011-03-23 22:53:44 -0400
commit918ed4bf919a55e3eb5d99d98c9b915921dc11ab (patch)
treea5739e7aa6444762a21f2b15ab9d633ec5059b49
parent57a218e86e30d57d9795bccd280737c431f6b4e4 (diff)
remove thread-local stuff which was fragile on some build systems
-rw-r--r--decoder/trule.cc3
-rwxr-xr-xutils/static_utoa.h2
-rw-r--r--utils/tdict.cc1
-rwxr-xr-xutils/threadlocal.h71
4 files changed, 2 insertions, 75 deletions
diff --git a/decoder/trule.cc b/decoder/trule.cc
index fda62741..40235542 100644
--- a/decoder/trule.cc
+++ b/decoder/trule.cc
@@ -5,7 +5,6 @@
#include "stringlib.h"
#include "tdict.h"
#include "rule_lexer.h"
-#include "threadlocal.h"
using namespace std;
@@ -99,7 +98,7 @@ TRule* TRule::CreateRuleMonolingual(const string& rule) {
namespace {
// callback for lexer
-THREADLOCAL int n_assigned=0;
+int n_assigned=0;
void assign_trule(const TRulePtr& new_rule, const unsigned int ctf_level, const TRulePtr& coarse_rule, void* extra) {
TRule *assignto=(TRule *)extra;
*assignto=*new_rule;
diff --git a/utils/static_utoa.h b/utils/static_utoa.h
index d15ed35b..bb3d821f 100755
--- a/utils/static_utoa.h
+++ b/utils/static_utoa.h
@@ -7,7 +7,7 @@
namespace {
static const int utoa_bufsize=40; // 64bit safe.
static const int utoa_bufsizem1=utoa_bufsize-1; // 64bit safe.
-THREADLOCAL char utoa_buf[utoa_bufsize]; // to put end of string character at buf[20]
+static char utoa_buf[utoa_bufsize]; // to put end of string character at buf[20]
}
inline char *static_utoa(unsigned n) {
diff --git a/utils/tdict.cc b/utils/tdict.cc
index 23a298f8..c21b2b48 100644
--- a/utils/tdict.cc
+++ b/utils/tdict.cc
@@ -8,7 +8,6 @@
#include "dict.h"
#include "tdict.h"
#include "stringlib.h"
-#include "threadlocal.h"
using namespace std;
diff --git a/utils/threadlocal.h b/utils/threadlocal.h
deleted file mode 100755
index d79f5d9d..00000000
--- a/utils/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