Description: w.mu is locked at line 385 and unlocked at line 396. Among 5 return statements in this function, 4 are below line 396 but there is 1 return at line 387. Fix: Add w.mu.Unlock() before that return at line 387.
@@ -384,6 +384,7 @@ func (w *watcher) RequestProgress(ctx context.Context) (err error) {
w.mu.Lock()
if w.streams == nil {
+ w.mu.Unlock()
return fmt.Errorf("no stream found for context")
}
wgs := w.streams[ctxKey]