From aafb874ad2b4b39090ec644077df464c5b04f988 Mon Sep 17 00:00:00 2001 From: chrislu Date: Sun, 25 Jun 2023 19:31:25 -0700 Subject: [PATCH] lock until cancelled --- weed/cluster/lock_client.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/weed/cluster/lock_client.go b/weed/cluster/lock_client.go index 6a6f7a450..de37476a9 100644 --- a/weed/cluster/lock_client.go +++ b/weed/cluster/lock_client.go @@ -35,7 +35,17 @@ type LiveLock struct { isLocked bool } -func (lc *LockClient) NewLock(filer pb.ServerAddress, key string, lockDuration time.Duration) (lock *LiveLock) { +// NewLockWithTimeout locks the key with the given duration +func (lc *LockClient) NewLockWithTimeout(filer pb.ServerAddress, key string, lockDuration time.Duration) (lock *LiveLock) { + return lc.doNewLock(filer, key, lockDuration) +} + +// NewLock creates a lock with a very long duration +func (lc *LockClient) NewLock(filer pb.ServerAddress, key string) (lock *LiveLock) { + return lc.doNewLock(filer, key, time.Duration(1<<63-1)) +} + +func (lc *LockClient) doNewLock(filer pb.ServerAddress, key string, lockDuration time.Duration) (lock *LiveLock) { lock = &LiveLock{ key: key, filer: filer,