Index: filter/txnBuf/context.go |
diff --git a/filter/txnBuf/context.go b/filter/txnBuf/context.go |
index c6007319b1566c941cabc5b55b2e5ce48c7a6e66..39433350865ee0cb3638fbc20b3e0baa1070efd3 100644 |
--- a/filter/txnBuf/context.go |
+++ b/filter/txnBuf/context.go |
@@ -8,13 +8,13 @@ import ( |
"golang.org/x/net/context" |
ds "github.com/luci/gae/service/datastore" |
- "github.com/luci/gae/service/info" |
) |
type key int |
var ( |
- dsTxnBufParent key |
+ dsTxnBufParent key |
+ dsTxnBufHaveLock key = 1 |
) |
// FilterRDS installs a transaction buffer datastore filter in the context. |
@@ -23,9 +23,10 @@ func FilterRDS(c context.Context) context.Context { |
// transaction to, transitively. |
return ds.AddRawFilters(c, func(c context.Context, rds ds.RawInterface) ds.RawInterface { |
if par, _ := c.Value(dsTxnBufParent).(*txnBufState); par != nil { |
- return &dsTxnBuf{c, par} |
+ haveLock, _ := c.Value(dsTxnBufHaveLock).(bool) |
+ return &dsTxnBuf{c, par, haveLock} |
} |
- return &dsBuf{rds, info.Get(c).GetNamespace()} |
+ return &dsBuf{rds} |
}) |
} |