Skip to content

Commit c2aa915

Browse files
authored
Merge pull request #59 from RealFax/dev
sync
2 parents 9bec94f + b6d879f commit c2aa915

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

locker/mutex.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package locker
22

33
import (
4+
"errors"
45
"github.com/RealFax/RedQueen/internal/hack"
56
"time"
67

@@ -18,7 +19,7 @@ func MutexLock(lockID string, ttl int32, backend Backend) error {
1819
return uint32(ttl)
1920
}(),
2021
); err != nil {
21-
if err == store.ErrKeyAlreadyExists {
22+
if errors.Is(err, store.ErrKeyAlreadyExists) {
2223
return ErrStatusBusy
2324
}
2425
return err
@@ -27,8 +28,7 @@ func MutexLock(lockID string, ttl int32, backend Backend) error {
2728
}
2829

2930
func MutexUnlock(lockID string, backend Backend) error {
30-
val, err := backend.Get(hack.String2Bytes(lockID))
31-
if len(val.Data) == 0 || err == store.ErrKeyNotFound {
31+
if _, err := backend.Get(hack.String2Bytes(lockID)); errors.Is(err, store.ErrKeyNotFound) {
3232
return ErrStatusBusy
3333
}
3434
return backend.Del(hack.String2Bytes(lockID))

server.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,13 @@ func NewServer(cfg *config.Config) (*Server, error) {
159159
return clusters
160160
}(),
161161
}); err != nil {
162-
return nil, err
162+
return nil, errors.Wrap(err, "NewServer")
163163
}
164164

165165
// init distributed lock backend
166-
server.lockerBackend = NewLockerBackend(server.store, server.applyLog)
166+
if server.lockerBackend, err = NewLockerBackend(server.store, server.applyLog); err != nil {
167+
return nil, errors.Wrap(err, "NewServer")
168+
}
167169

168170
// init requests merged
169171
if cfg.Node.RequestsMerged {

server_misc.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,15 @@ func (w LockerBackendWrapper) Watch(key []byte) (store.WatcherNotify, error) {
5555
}
5656

5757
func NewLockerBackend(
58-
ns store.Namespace,
58+
s store.Store,
5959
raftApplyFunc func(context.Context, *serverpb.RaftLogPayload, time.Duration) error,
60-
) locker.Backend {
60+
) (locker.Backend, error) {
61+
current, err := s.Namespace(locker.Namespace)
62+
if err != nil {
63+
return nil, err
64+
}
6165
return &LockerBackendWrapper{
62-
store: ns,
66+
store: current,
6367
apply: raftApplyFunc,
64-
}
68+
}, nil
6569
}

0 commit comments

Comments
 (0)