]> git.sesse.net Git - stockfish/blobdiff - src/thread.h
Rename ThreadsManager to ThreadPool
[stockfish] / src / thread.h
index 3f3c8c4c0a1614aee6735de0551073ee4c7a358c..73be23f108c509e8a23bd0c05c322a771d7b66c3 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();
@@ -102,31 +102,29 @@ public:
 };
 
 
-/// ThreadsManager class handles all the threads related stuff like init, starting,
+/// ThreadPool class handles all the threads related stuff like init, starting,
 /// parking and, the most important, launching a slave thread at a split point.
 /// All the access to shared thread data is done through this class.
 
-class ThreadsManager {
-  /* As long as the single ThreadsManager object is defined as a global we don't
+class ThreadPool {
+  /* As long as the single ThreadPool object is defined as a global we don't
      need to explicitly initialize to zero its data members because variables with
      static storage duration are automatically set to zero before enter main()
   */
 public:
-  void init(); // No c'tor becuase Threads is static and we need engine initialized
-  ~ThreadsManager();
+  void init(); // No c'tor becuase Threads is global and we need engine initialized
+  ~ThreadPool();
 
   Thread& operator[](int id) { return *threads[id]; }
   bool use_sleeping_threads() const { return useSleepingThreads; }
   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); }
+  Thread* main_thread() { return threads[0]; }
 
   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;
@@ -148,6 +145,6 @@ private:
   bool useSleepingThreads;
 };
 
-extern ThreadsManager Threads;
+extern ThreadPool Threads;
 
 #endif // !defined(THREAD_H_INCLUDED)