diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2025-09-19 14:27:43 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2025-10-02 08:49:35 +0000 |
| commit | 11414272b7f8f8fb98d7084178e20699b6f2d759 (patch) | |
| tree | dd6de0a8303f2989f8517c7cc42b02a9c02ff490 /pkg | |
| parent | 267f56c68647622ed18443309598739a42bc3d31 (diff) | |
pkg/manager: reduce time spend under mutex
We don't need it to hold it for the call to the externally supplied
callback.
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/manager/diff.go | 10 | ||||
| -rw-r--r-- | pkg/manager/repro.go | 2 |
2 files changed, 5 insertions, 7 deletions
diff --git a/pkg/manager/diff.go b/pkg/manager/diff.go index b6423e4c9..44bd6a225 100644 --- a/pkg/manager/diff.go +++ b/pkg/manager/diff.go @@ -378,18 +378,14 @@ func (dc *diffContext) NeedRepro(crash *Crash) bool { if !needReproForTitle(crash.Title) { return false } - dc.mu.Lock() - defer dc.mu.Unlock() - ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() if dc.ignoreCrash(ctx, crash.Title) { return false } - if dc.reproAttempts[crash.Title] > maxReproAttempts { - return false - } - return true + dc.mu.Lock() + defer dc.mu.Unlock() + return dc.reproAttempts[crash.Title] <= maxReproAttempts } func (dc *diffContext) RunRepro(ctx context.Context, crash *Crash) *ReproResult { diff --git a/pkg/manager/repro.go b/pkg/manager/repro.go index 184945c5c..664dbd2b3 100644 --- a/pkg/manager/repro.go +++ b/pkg/manager/repro.go @@ -184,6 +184,8 @@ func (r *ReproLoop) popCrash() *Crash { } func (r *ReproLoop) Loop(ctx context.Context) { + defer log.Logf(1, "repro loop terminated") + count := 0 for ; r.calculateReproVMs(count+1) <= r.reproVMs; count++ { r.parallel <- struct{}{} |
