We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 37c127f commit b99124aCopy full SHA for b99124a
src/runtime/internal/atomic/atomic_mipsx.go
@@ -111,24 +111,22 @@ func Store64(addr *uint64, val uint64) {
111
112
//go:nosplit
113
func Or64(addr *uint64, val uint64) (old uint64) {
114
- lockAndCheck(addr)
115
-
116
- old = *addr
117
- *addr = old | val
118
119
- unlockNoFence()
120
- return old
+ for {
+ old = *addr
+ if Cas64(addr, old, old|val) {
+ return old
+ }
121
}
122
123
124
func And64(addr *uint64, val uint64) (old uint64) {
125
126
127
128
- *addr = old & val
129
130
131
+ if Cas64(addr, old, old&val) {
132
133
134
//go:noescape
0 commit comments