Index: go/src/infra/gae/libs/memlock/memlock.go |
diff --git a/go/src/infra/gae/libs/memlock/memlock.go b/go/src/infra/gae/libs/memlock/memlock.go |
index 0665f0d60d14aa1c6eb1f22302b1b3f8f61079c2..fee7dcd2374ddd9690f0325b29c06f8321001e77 100644 |
--- a/go/src/infra/gae/libs/memlock/memlock.go |
+++ b/go/src/infra/gae/libs/memlock/memlock.go |
@@ -11,15 +11,14 @@ package memlock |
import ( |
"bytes" |
"errors" |
- "infra/gae/libs/wrapper" |
- "infra/libs/clock" |
+ "golang.org/x/net/context" |
"sync/atomic" |
"time" |
- "github.com/luci/luci-go/common/logging" |
- "golang.org/x/net/context" |
+ "infra/gae/libs/gae" |
- "appengine/memcache" |
+ "github.com/luci/luci-go/common/clock" |
+ "github.com/luci/luci-go/common/logging" |
) |
// ErrFailedToLock is returned from TryWithLock when it fails to obtain a lock |
@@ -67,7 +66,7 @@ func TryWithLock(ctx context.Context, key, clientID string, f func(check func() |
ctx = logging.SetField(ctx, "key", key) |
ctx = logging.SetField(ctx, "clientID", clientID) |
log := logging.Get(ctx) |
- mc := wrapper.GetMC(ctx) |
+ mc := gae.GetMC(ctx) |
key = memlockKeyPrefix + key |
cid := []byte(clientID) |
@@ -90,22 +89,20 @@ func TryWithLock(ctx context.Context, key, clientID string, f func(check func() |
return false |
} |
- if len(itm.Value) > 0 && !bytes.Equal(itm.Value, cid) { |
- log.Infof("lock owned by %q", string(itm.Value)) |
+ if len(itm.Value()) > 0 && !bytes.Equal(itm.Value(), cid) { |
+ log.Infof("lock owned by %q", string(itm.Value())) |
return false |
} |
if op == refresh { |
- itm.Value = cid |
- itm.Expiration = memcacheLockTime |
+ itm.SetValue(cid).SetExpiration(memcacheLockTime) |
} else { |
- if len(itm.Value) == 0 { |
+ if len(itm.Value()) == 0 { |
// it's already unlocked, no need to CAS |
log.Infof("lock already released") |
return true |
} |
- itm.Value = []byte{} |
- itm.Expiration = delay |
+ itm.SetValue([]byte{}).SetExpiration(delay) |
} |
err = mc.CompareAndSwap(itm) |
@@ -119,10 +116,10 @@ func TryWithLock(ctx context.Context, key, clientID string, f func(check func() |
// Now the actual logic begins. First we 'Add' the item, which will set it if |
// it's not present in the memcache, otherwise leaves it alone. |
- err := mc.Add(&memcache.Item{ |
- Key: key, Value: cid, Expiration: memcacheLockTime}) |
+ |
+ err := mc.Add(mc.NewItem(key).SetValue(cid).SetExpiration(memcacheLockTime)) |
if err != nil { |
- if err != memcache.ErrNotStored { |
+ if err != gae.ErrMCNotStored { |
log.Warningf("error adding: %s", err) |
} |
if !checkAnd(refresh) { |