- // init_node() is called at the beginning of all the search functions
- // (search() qsearch(), and so on) and initializes the
- // search stack object corresponding to the current node. Once every
- // NodesBetweenPolls nodes, init_node() also calls poll(), which polls
- // for user input and checks whether it is time to stop the search.
-
- void init_node(SearchStack* ss, int ply, int threadID) {
-
- assert(ply >= 0 && ply < PLY_MAX);
- assert(threadID >= 0 && threadID < TM.active_threads());
-
- TM.incrementNodeCounter(threadID);
-
- if (threadID == 0)
- {
- NodesSincePoll++;
- if (NodesSincePoll >= NodesBetweenPolls)
- {
- poll();
- NodesSincePoll = 0;
- }
- }
- ss->init(ply);
- (ss + 2)->initKillers();
- }
-