]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix data race in memory piece completion. iters FTL
authorMatt Joiner <anacrolix@gmail.com>
Wed, 28 May 2025 15:23:26 +0000 (01:23 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Wed, 28 May 2025 15:23:26 +0000 (01:23 +1000)
storage/map-piece-completion.go

index 9db53e3df96f0fd2c1d57ac8fa4f2583adeab90f..e4a8ecf9b03802eea533fc1c26e64806f54e0176 100644 (file)
@@ -47,8 +47,8 @@ func (me *memoryTorrentJustComplete) Set(i int, complete bool) {
 
 func (me *memoryTorrentJustComplete) GetRange(begin, end int) iter.Seq[justComplete] {
        me.mu.RLock()
-       defer me.mu.RUnlock()
        return func(yield func(justComplete) bool) {
+               defer me.mu.RUnlock()
                for i := begin; i < end; i++ {
                        if !yield(me.getLocked(i)) {
                                return