]> git.sesse.net Git - stockfish/blobdiff - src/thread.h
Thread::splitPoint is a volatile pointer
[stockfish] / src / thread.h
index 27c39dff6de928caaa2f12ab78f77fb3b25ae0a1..782694ad7d25607e8161b1be8ce9803022222332 100644 (file)
@@ -1,7 +1,7 @@
 /*
   Stockfish, a UCI chess playing engine derived from Glaurung 2.1
   Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
-  Copyright (C) 2008-2009 Marco Costalba
+  Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad
 
   Stockfish is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -51,10 +51,10 @@ struct SplitPoint {
   // Const data after splitPoint has been setup
   SplitPoint* parent;
   const Position* pos;
-  bool pvNode;
   Depth depth;
+  bool pvNode, mateThreat;
   Value beta;
-  int ply, master, slaves[MAX_THREADS];
+  int ply;
   SearchStack sstack[MAX_THREADS][PLY_MAX_PLUS_2];
 
   // Const pointers to shared data
@@ -65,9 +65,9 @@ struct SplitPoint {
   Lock lock;
   volatile Value alpha;
   volatile Value bestValue;
-  volatile int moves;
-  volatile int cpus;
+  volatile int moveCount;
   volatile bool stopRequest;
+  volatile int slaves[MAX_THREADS];
 };
 
 // ThreadState type is used to represent thread's current state
@@ -83,11 +83,10 @@ enum ThreadState
 };
 
 struct Thread {
-  SplitPoint* splitPoint;
+  SplitPoint* volatile splitPoint;
   volatile int activeSplitPoints;
   uint64_t nodes;
   uint64_t betaCutOffs[2];
-  volatile bool printCurrentLineRequest;
   volatile ThreadState state;
   unsigned char pad[64]; // set some distance among local data for each thread
 };