mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Get rid of nativeThread
No functional change.
This commit is contained in:
parent
26dabb1e6b
commit
be77406a55
4 changed files with 8 additions and 9 deletions
|
@ -76,7 +76,7 @@ eg_type = typename std::conditional<(E < SCALING_FUNCTIONS), Value, ScaleFactor>
|
|||
template<typename T>
|
||||
struct EndgameBase {
|
||||
|
||||
virtual ~EndgameBase() {}
|
||||
virtual ~EndgameBase() = default;
|
||||
virtual Color strong_side() const = 0;
|
||||
virtual T operator()(const Position&) const = 0;
|
||||
};
|
||||
|
|
|
@ -38,9 +38,9 @@ namespace {
|
|||
// when start_routine (and hence virtual idle_loop) is called and when joining.
|
||||
|
||||
template<typename T> T* new_thread() {
|
||||
T* th = new T();
|
||||
th->nativeThread = std::thread(&ThreadBase::idle_loop, th); // Will go to sleep
|
||||
return th;
|
||||
std::thread* th = new T;
|
||||
*th = std::thread(&T::idle_loop, (T*)th); // Will go to sleep
|
||||
return (T*)th;
|
||||
}
|
||||
|
||||
void delete_thread(ThreadBase* th) {
|
||||
|
@ -50,7 +50,7 @@ namespace {
|
|||
th->mutex.unlock();
|
||||
|
||||
th->notify_one();
|
||||
th->nativeThread.join(); // Wait for thread termination
|
||||
th->join(); // Wait for thread termination
|
||||
delete th;
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,7 @@ namespace {
|
|||
|
||||
void ThreadBase::notify_one() {
|
||||
|
||||
std::unique_lock<Mutex>(this->mutex);
|
||||
std::unique_lock<Mutex> lk(mutex);
|
||||
sleepCondition.notify_one();
|
||||
}
|
||||
|
||||
|
|
|
@ -89,14 +89,13 @@ struct SplitPoint {
|
|||
/// ThreadBase struct is the base of the hierarchy from where we derive all the
|
||||
/// specialized thread classes.
|
||||
|
||||
struct ThreadBase {
|
||||
struct ThreadBase : public std::thread {
|
||||
|
||||
virtual ~ThreadBase() = default;
|
||||
virtual void idle_loop() = 0;
|
||||
void notify_one();
|
||||
void wait_for(volatile const bool& b);
|
||||
|
||||
std::thread nativeThread;
|
||||
Mutex mutex;
|
||||
Spinlock spinlock;
|
||||
ConditionVariable sleepCondition;
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace {
|
|||
return;
|
||||
|
||||
pos.set(fen, Options["UCI_Chess960"], Threads.main());
|
||||
SetupStates = Search::StateStackPtr(new std::stack<StateInfo>());
|
||||
SetupStates = Search::StateStackPtr(new std::stack<StateInfo>);
|
||||
|
||||
// Parse move list (if any)
|
||||
while (is >> token && (m = UCI::to_move(pos, token)) != MOVE_NONE)
|
||||
|
|
Loading…
Add table
Reference in a new issue