aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/cluster/lock_client.go12
1 files changed, 11 insertions, 1 deletions
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,