////
const int MAX_THREADS = 8;
-const int ACTIVE_SPLIT_POINTS_MAX = 8;
+const int MAX_ACTIVE_SPLIT_POINTS = 8;
////
bool pvNode, mateThreat;
Value beta;
int ply;
+ Move threatMove;
SearchStack sstack[MAX_THREADS][PLY_MAX_PLUS_2];
// Const pointers to shared data
enum ThreadState
{
+ THREAD_INITIALIZING, // thread is initializing itself
THREAD_SEARCHING, // thread is performing work
- THREAD_AVAILABLE, // thread is polling for work
- THREAD_SLEEPING, // we are not thinking, so thread is sleeping
+ THREAD_AVAILABLE, // thread is waiting for work
THREAD_BOOKED, // other thread (master) has booked us as a slave
THREAD_WORKISWAITING, // master has ordered us to start
THREAD_TERMINATED // we are quitting and thread is terminated
};
struct Thread {
- SplitPoint* volatile splitPoint;
- volatile int activeSplitPoints;
uint64_t nodes;
- uint64_t betaCutOffs[2];
volatile ThreadState state;
- unsigned char pad[64]; // set some distance among local data for each thread
+ SplitPoint* volatile splitPoint;
+ volatile int activeSplitPoints;
+ SplitPoint splitPoints[MAX_ACTIVE_SPLIT_POINTS];
};