(k key)
| 83 | } |
| 84 | |
| 85 | func (l *locker) stop(k key) { |
| 86 | for !atomic.CompareAndSwapInt32(&l.keychain[k], 0, 2) && atomic.LoadInt32(&l.keychain[k]) != 2 { |
| 87 | runtime.Gosched() |
| 88 | } |
| 89 | } |
| 90 | |
| 91 | func (l *locker) isUnlock(k key) bool { |
| 92 | return atomic.LoadInt32(&l.keychain[k]) == 0 |