]> git.sesse.net Git - stockfish/blobdiff - src/thread.h
Use thread_local compiler specifics
[stockfish] / src / thread.h
index 3f3c8c4c0a1614aee6735de0551073ee4c7a358c..e03578eef8db488c34e23fde3a95157fbd8102f1 100644 (file)
@@ -78,7 +78,7 @@ public:
 
   void wake_up();
   bool cutoff_occurred() const;
-  bool is_available_to(const Thread& master) const;
+  bool is_available_to(Thread* master) const;
   void idle_loop(SplitPoint* sp_master);
   void idle_loop() { idle_loop(NULL); } // Hack to allow storing in start_fn
   void main_loop();
@@ -120,13 +120,11 @@ public:
   int min_split_depth() const { return minimumSplitDepth; }
   int size() const { return (int)threads.size(); }
   Thread* main_thread() const { return threads[0]; }
-  Thread* this_thread() const { return (Thread*)tls_get(tlsKey); }
-  void set_this_thread(Thread* th) const { tls_set(tlsKey, th); }
 
   void wake_up() const;
   void sleep() const;
   void read_uci_options();
-  bool available_slave_exists(const Thread& master) const;
+  bool available_slave_exists(Thread* master) const;
   void set_timer(int msec);
   void wait_for_search_finished();
   void start_searching(const Position& pos, const Search::LimitsType& limits,
@@ -140,7 +138,6 @@ private:
 
   std::vector<Thread*> threads;
   Thread* timer;
-  ThreadLocalStorageKey tlsKey;
   Lock splitLock;
   WaitCondition sleepCond;
   Depth minimumSplitDepth;
@@ -149,5 +146,6 @@ private:
 };
 
 extern ThreadsManager Threads;
+extern THREAD_LOCAL Thread* this_thread;
 
 #endif // !defined(THREAD_H_INCLUDED)