From a26ce61d9261f831b44deaf2229529a2753cd575 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Tue, 11 Feb 2014 16:04:55 +0100 Subject: [PATCH] (Re)Fix locking around deleteFile (fixes #64) --- model/filequeue.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/model/filequeue.go b/model/filequeue.go index fb980869..77a217d5 100644 --- a/model/filequeue.go +++ b/model/filequeue.go @@ -221,6 +221,8 @@ func (q *FileQueue) SetAvailable(file string, nodes []string) { func (q *FileQueue) RemoveAvailable(toRemove string) { q.amut.Lock() + q.fmut.Lock() + defer q.fmut.Unlock() defer q.amut.Unlock() for file, nodes := range q.availability { @@ -228,9 +230,7 @@ func (q *FileQueue) RemoveAvailable(toRemove string) { if node == toRemove { q.availability[file] = nodes[:i+copy(nodes[i:], nodes[i+1:])] if len(q.availability[file]) == 0 { - q.fmut.Lock() q.deleteFile(file) - q.fmut.Unlock() } } break