Clarify we don't late join with only 2 threads
authorMarco Costalba <mcostalba@gmail.com>
Thu, 19 Feb 2015 22:12:59 +0000 (23:12 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Thu, 19 Feb 2015 22:12:59 +0000 (23:12 +0100)
Thanks to Gary for pointing this out.

No functional change.

src/search.cpp

index 12ed75997dfaa500beccd424ef2d86529444bc1b..15b93a728de884211a0ed864963010d502c2a9c9 100644 (file)
@@ -1604,8 +1604,10 @@ void Thread::idle_loop() {
               {
                   assert(this != Threads[i]);
                   assert(!(this_sp && this_sp->slavesMask.none()));
+                  assert(Threads.size() > 2);
 
-                  // Compute the recursive split points chain size
+                  // Prefer to join to SP with few parents to reduce the probability
+                  // that a cut-off occurs above us, and hence we waste our work.
                   int level = -1;
                   for (SplitPoint* spp = Threads[i]->activeSplitPoint; spp; spp = spp->parentSplitPoint)
                       level++;