mirror of
https://github.com/sockspls/badfish
synced 2025-07-11 19:49:14 +00:00
Sync with master
bench: 8253813
This commit is contained in:
commit
098f645d26
1 changed files with 5 additions and 7 deletions
|
@ -1583,7 +1583,7 @@ void Thread::idle_loop() {
|
||||||
// Try to late join to another split point if none of its slaves has
|
// Try to late join to another split point if none of its slaves has
|
||||||
// already finished.
|
// already finished.
|
||||||
SplitPoint* bestSp = NULL;
|
SplitPoint* bestSp = NULL;
|
||||||
int bestScore = INT_MAX;
|
int minLevel = INT_MAX;
|
||||||
|
|
||||||
for (Thread* th : Threads)
|
for (Thread* th : Threads)
|
||||||
{
|
{
|
||||||
|
@ -1601,16 +1601,14 @@ void Thread::idle_loop() {
|
||||||
|
|
||||||
// Prefer to join to SP with few parents to reduce the probability
|
// 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.
|
// that a cut-off occurs above us, and hence we waste our work.
|
||||||
int level = -1;
|
int level = 0;
|
||||||
for (SplitPoint* spp = th->activeSplitPoint; spp; spp = spp->parentSplitPoint)
|
for (SplitPoint* p = th->activeSplitPoint; p; p = p->parentSplitPoint)
|
||||||
level++;
|
level++;
|
||||||
|
|
||||||
int score = level * 256 * 256 + (int)sp->slavesMask.count() * 256 - sp->depth * 1;
|
if (level < minLevel)
|
||||||
|
|
||||||
if (score < bestScore)
|
|
||||||
{
|
{
|
||||||
bestSp = sp;
|
bestSp = sp;
|
||||||
bestScore = score;
|
minLevel = level;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue