LockOrder 尝试对给定订单号加锁
(tradeNo string)
| 154 | |
| 155 | // LockOrder 尝试对给定订单号加锁 |
| 156 | func LockOrder(tradeNo string) { |
| 157 | lock, ok := orderLocks.Load(tradeNo) |
| 158 | if !ok { |
| 159 | createLock.Lock() |
| 160 | defer createLock.Unlock() |
| 161 | lock, ok = orderLocks.Load(tradeNo) |
| 162 | if !ok { |
| 163 | lock = new(sync.Mutex) |
| 164 | orderLocks.Store(tradeNo, lock) |
| 165 | } |
| 166 | } |
| 167 | lock.(*sync.Mutex).Lock() |
| 168 | } |
| 169 | |
| 170 | // UnlockOrder 释放给定订单号的锁 |
| 171 | func UnlockOrder(tradeNo string) { |