X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fthread.h;h=556ebc59a27eb9c5f8b89ef2e9ac1cba7c024330;hp=e62857dd409b7df14ef90c59226f889b8413f570;hb=b39a24ecca28620239818ca393a46a47f9d42824;hpb=189a005a0be8dc255ae1e5f2d4d8c416f6b0db75 diff --git a/src/thread.h b/src/thread.h index e62857dd..556ebc59 100644 --- a/src/thread.h +++ b/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 };