Procházet zdrojové kódy

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

clientv3/concurrency.Mutex.Lock() - preserve invariant
Xiang Li před 7 roky
rodič
revize
b046a37256
1 změnil soubory, kde provedl 3 přidání a 4 odebrání
  1. 3 4
      clientv3/concurrency/mutex.go

+ 3 - 4
clientv3/concurrency/mutex.go

@@ -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