mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 00:56:39 +08:00
Simplify idle_loop() signature
We can detect the split point master also from within idle_loop, so we can call the function without parameters and remove an overloaded member hack in Thread class. Note that we don't need to take a lock around curSplitPoint when entering idle_loop() because if we are the master then curSplitPoint cannot change under our feet (because is_searching is set and so we cannot be reallocated), if we are a slave we enter idle_loop() only upon Thread creation and in that case is always splitPointsCnt == 0. This is true even in the very rare case that curSplitPoint != NULL, if we have been already allocated even before entering idle_loop(). No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -1643,11 +1643,15 @@ void RootMove::insert_pv_in_tt(Position& pos) {
|
||||
}
|
||||
|
||||
|
||||
/// Thread::idle_loop() is where the thread is parked when it has no work to do.
|
||||
/// The parameter 'master_sp', if non-NULL, is a pointer to an active SplitPoint
|
||||
/// object for which the thread is the master.
|
||||
/// Thread::idle_loop() is where the thread is parked when it has no work to do
|
||||
|
||||
void Thread::idle_loop(SplitPoint* sp_master) {
|
||||
void Thread::idle_loop() {
|
||||
|
||||
// Pointer 'sp_master', if non-NULL, points to the active SplitPoint
|
||||
// object for which the thread is the master.
|
||||
const SplitPoint* sp_master = splitPointsCnt ? curSplitPoint : NULL;
|
||||
|
||||
assert(!sp_master || (sp_master->master == this && is_searching));
|
||||
|
||||
// If this thread is the master of a split point and all slaves have
|
||||
// finished their work at this split point, return from the idle loop.
|
||||
|
||||
Reference in New Issue
Block a user