From dc52b69ddc5ffd55be70c91896f340fe79ece01b Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Tue, 18 Aug 2020 22:40:15 +0800 Subject: [PATCH] Only lock statuses map when status isn't successful Determine the status successful or not first, that will reduce the chance of lock contention. --- pkg/scheduler/core/generic_scheduler.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index 491d6a3eaa5..599b6fe777f 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -333,11 +333,11 @@ func (g *genericScheduler) findNodesThatPassFilters(ctx context.Context, prof *p feasibleNodes[length-1] = nodeInfo.Node() } } else { - statusesLock.Lock() if !status.IsSuccess() { + statusesLock.Lock() statuses[nodeInfo.Node().Name] = status + statusesLock.Unlock() } - statusesLock.Unlock() } }