mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2026-03-13 11:20:33 +00:00
fix(fs): deadlock when get link error (#963)
This commit is contained in:
@@ -74,6 +74,7 @@ type Group[T any] struct {
|
||||
mu sync.Mutex // protects m
|
||||
m map[string]*call[T] // lazily initialized
|
||||
|
||||
// Won't remember error
|
||||
Remember bool
|
||||
}
|
||||
|
||||
@@ -158,7 +159,7 @@ func (g *Group[T]) doCall(c *call[T], key string, fn func() (T, error)) {
|
||||
g.mu.Lock()
|
||||
defer g.mu.Unlock()
|
||||
c.wg.Done()
|
||||
if !g.Remember && g.m[key] == c {
|
||||
if (!g.Remember || c.err != nil) && g.m[key] == c {
|
||||
delete(g.m, key)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user