Merge pull request #10153 from funny-falcon/fix-client-mutex-lock-10111

clientv3/concurrency.Mutex.Lock() - preserve invariant
This commit is contained in:
Xiang Li
2018-10-08 15:13:52 -07:00
committed by GitHub

View File

@@ -68,11 +68,10 @@ func (m *Mutex) Lock(ctx context.Context) error {
// wait for deletion revisions prior to myKey
hdr, werr := waitDeletes(ctx, client, m.pfx, m.myRev-1)
// release lock key if cancelled
select {
case <-ctx.Done():
// release lock key if wait failed
if werr != nil {
m.Unlock(client.Ctx())
default:
} else {
m.hdr = hdr
}
return werr