mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 08:36:33 +08:00
Use state instead of flags to track threads
This is easier to follow and also reduces the points where state changes to mainly idle_loop() and split(). No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
16
src/thread.h
16
src/thread.h
@@ -64,6 +64,17 @@ struct SplitPoint {
|
||||
bool finished;
|
||||
};
|
||||
|
||||
// ThreadState type is used to represent thread's current state
|
||||
|
||||
enum ThreadState
|
||||
{
|
||||
THREAD_SEARCHING, // thread is performing work
|
||||
THREAD_AVAILABLE, // thread is polling for work
|
||||
THREAD_SLEEPING, // we are not thinking, so thread is sleeping
|
||||
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 *splitPoint;
|
||||
@@ -71,11 +82,8 @@ struct Thread {
|
||||
uint64_t nodes;
|
||||
uint64_t betaCutOffs[2];
|
||||
volatile bool stopRequest;
|
||||
volatile bool running;
|
||||
volatile bool idle;
|
||||
volatile bool sleeping;
|
||||
volatile bool workIsWaiting;
|
||||
volatile bool printCurrentLineRequest;
|
||||
volatile ThreadState state;
|
||||
unsigned char pad[64]; // set some distance among local data for each thread
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user