]> Cypherpunks repositories - gostls13.git/commitdiff
net: fix bug in fdMutex
authorDmitriy Vyukov <dvyukov@google.com>
Fri, 16 Aug 2013 12:02:55 +0000 (16:02 +0400)
committerDmitriy Vyukov <dvyukov@google.com>
Fri, 16 Aug 2013 12:02:55 +0000 (16:02 +0400)
Fixes #6165.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/12984044

src/pkg/net/fd_mutex.go

index 1caf974dd14bd036d0bf7477c7ba5a8dfc6e2fd1..6d5509d7f2a3c7f528adb66a33dc2c2ec20c8e54 100644 (file)
@@ -98,7 +98,7 @@ func (mu *fdMutex) Decref() bool {
                }
                new := old - mutexRef
                if atomic.CompareAndSwapUint64(&mu.state, old, new) {
-                       return new&(mutexClosed|mutexRef) == mutexClosed
+                       return new&(mutexClosed|mutexRefMask) == mutexClosed
                }
        }
 }
@@ -174,7 +174,7 @@ func (mu *fdMutex) RWUnlock(read bool) bool {
                        if old&mutexMask != 0 {
                                runtime_Semrelease(mutexSema)
                        }
-                       return new&(mutexClosed|mutexRef) == mutexClosed
+                       return new&(mutexClosed|mutexRefMask) == mutexClosed
                }
        }
 }