fixed preload finish deadlock
This commit is contained in:
parent
caf12d9ca5
commit
cd0b0254c7
1 changed files with 4 additions and 4 deletions
|
|
@ -34,10 +34,10 @@ func (q *queue) Add(ph *PreloadHandler, name string, prio int) {
|
||||||
q.Sort()
|
q.Sort()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *queue) Remove(name string) {
|
func (q *queue) Remove(name string, collect bool) {
|
||||||
for i, p := range *q {
|
for i, p := range *q {
|
||||||
if p.Name == name {
|
if p.Name == name {
|
||||||
p.stop(true)
|
p.stop(collect)
|
||||||
*q = slices.Delete(*q, i, i+1)
|
*q = slices.Delete(*q, i, i+1)
|
||||||
q.Sort()
|
q.Sort()
|
||||||
return
|
return
|
||||||
|
|
@ -100,7 +100,7 @@ func NewPreloadHandler(ctx context.Context, fs *FS, max int, log logr.Logger) (p
|
||||||
func (ph *PreloadHandler) RemovePreload(name string) {
|
func (ph *PreloadHandler) RemovePreload(name string) {
|
||||||
ph.mu.RLock()
|
ph.mu.RLock()
|
||||||
defer ph.mu.RUnlock()
|
defer ph.mu.RUnlock()
|
||||||
ph.q.Remove(name)
|
ph.q.Remove(name, true)
|
||||||
ph.schedule()
|
ph.schedule()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -184,7 +184,7 @@ func (ph *PreloadHandler) preloadStatus(ctx context.Context) {
|
||||||
return
|
return
|
||||||
case name := <-ph.fin:
|
case name := <-ph.fin:
|
||||||
ph.mu.Lock()
|
ph.mu.Lock()
|
||||||
ph.q.Remove(name)
|
ph.q.Remove(name, false)
|
||||||
ph.schedule()
|
ph.schedule()
|
||||||
ph.mu.Unlock()
|
ph.mu.Unlock()
|
||||||
case name := <-ph.err:
|
case name := <-ph.err:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue