- // Stop the search if we have only one legal move, or if available time elapsed
- if ( rootMoves.size() == 1
- || Time.elapsed() > Time.optimum() * fallingEval * reduction * bestMoveInstability)
+ double totalTime = rootMoves.size() == 1 ? 0 :
+ Time.optimum() * fallingEval * reduction * bestMoveInstability;
+
+ // Stop the search if we have exceeded the totalTime, at least 1ms search.
+ if (Time.elapsed() > totalTime)