Instead of other flags this is not a state flag, i.e. does
not defines a state for the thread, but a request because
after we raise 'stopRequest' flag the corresponding thread is
not stopped, but continues to run for a while until it returns
from sp_search() in idle_loop.
It is important the name reflects this.
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
int active_threads() const { return ActiveThreads; }
void set_active_threads(int newActiveThreads) { ActiveThreads = newActiveThreads; }
int active_threads() const { return ActiveThreads; }
void set_active_threads(int newActiveThreads) { ActiveThreads = newActiveThreads; }
- void set_stop_request(int threadID) { threads[threadID].stop = true; }
+ void set_stop_request(int threadID) { threads[threadID].stopRequest = true; }
void incrementNodeCounter(int threadID) { threads[threadID].nodes++; }
void incrementBetaCounter(Color us, Depth d, int threadID) { threads[threadID].betaCutOffs[us] += unsigned(d); }
void print_current_line(SearchStack ss[], int ply, int threadID);
void incrementNodeCounter(int threadID) { threads[threadID].nodes++; }
void incrementBetaCounter(Color us, Depth d, int threadID) { threads[threadID].betaCutOffs[us] += unsigned(d); }
void print_current_line(SearchStack ss[], int ply, int threadID);
AllThreadsShouldExit = true;
for (int i = 1; i < THREAD_MAX; i++)
{
AllThreadsShouldExit = true;
for (int i = 1; i < THREAD_MAX; i++)
{
- threads[i].stop = true;
+ threads[i].stopRequest = true;
while (threads[i].running);
}
while (threads[i].running);
}
- if (threads[threadID].stop)
+ if (threads[threadID].stopRequest)
return true;
if (ActiveThreads <= 2)
return true;
if (ActiveThreads <= 2)
splitPoint->slaves[i] = 0;
threads[master].idle = false;
splitPoint->slaves[i] = 0;
threads[master].idle = false;
- threads[master].stop = false;
+ threads[master].stopRequest = false;
threads[master].splitPoint = splitPoint;
// Allocate available threads setting idle flag to false
threads[master].splitPoint = splitPoint;
// Allocate available threads setting idle flag to false
if (thread_is_available(i, master))
{
threads[i].idle = false;
if (thread_is_available(i, master))
{
threads[i].idle = false;
- threads[i].stop = false;
+ threads[i].stopRequest = false;
threads[i].splitPoint = splitPoint;
splitPoint->slaves[i] = 1;
splitPoint->cpus++;
threads[i].splitPoint = splitPoint;
splitPoint->slaves[i] = 1;
splitPoint->cpus++;
*beta = splitPoint->beta;
*bestValue = splitPoint->bestValue;
*beta = splitPoint->beta;
*bestValue = splitPoint->bestValue;
- threads[master].stop = false;
+ threads[master].stopRequest = false;
threads[master].idle = false;
threads[master].activeSplitPoints--;
threads[master].splitPoint = splitPoint->parent;
threads[master].idle = false;
threads[master].activeSplitPoints--;
threads[master].splitPoint = splitPoint->parent;
assert(!threads[i].workIsWaiting);
// These two flags can be in a random state
assert(!threads[i].workIsWaiting);
// These two flags can be in a random state
- threads[i].stop = threads[i].printCurrentLineRequest = false;
+ threads[i].stopRequest = threads[i].printCurrentLineRequest = false;
volatile int activeSplitPoints;
uint64_t nodes;
uint64_t betaCutOffs[2];
volatile int activeSplitPoints;
uint64_t nodes;
uint64_t betaCutOffs[2];
+ volatile bool stopRequest;
volatile bool running;
volatile bool idle;
volatile bool sleeping;
volatile bool running;
volatile bool idle;
volatile bool sleeping;