OLD | NEW |
1 // Copyright 2015 The LUCI Authors. All rights reserved. | 1 // Copyright 2015 The LUCI Authors. All rights reserved. |
2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
4 | 4 |
5 package txnBuf | 5 package txnBuf |
6 | 6 |
7 import ( | 7 import ( |
8 ds "github.com/luci/gae/service/datastore" | 8 ds "github.com/luci/gae/service/datastore" |
9 "github.com/luci/luci-go/common/errors" | 9 "github.com/luci/luci-go/common/errors" |
10 "golang.org/x/net/context" | 10 "golang.org/x/net/context" |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 } | 109 } |
110 | 110 |
111 func (d *dsTxnBuf) RunInTransaction(cb func(context.Context) error, opts *ds.Tra
nsactionOptions) error { | 111 func (d *dsTxnBuf) RunInTransaction(cb func(context.Context) error, opts *ds.Tra
nsactionOptions) error { |
112 if !d.haveLock { | 112 if !d.haveLock { |
113 d.state.Lock() | 113 d.state.Lock() |
114 defer d.state.Unlock() | 114 defer d.state.Unlock() |
115 } | 115 } |
116 return withTxnBuf(d.ic, cb, opts) | 116 return withTxnBuf(d.ic, cb, opts) |
117 } | 117 } |
118 | 118 |
119 func (d *dsTxnBuf) Testable() ds.Testable { | 119 func (d *dsTxnBuf) CurrentTransaction() ds.Transaction { return d.state.parentDS
.CurrentTransaction() } |
120 » return d.state.parentDS.Testable() | 120 |
| 121 func (d *dsTxnBuf) WithoutTransaction() context.Context { |
| 122 » c := d.state.parentDS.WithoutTransaction() |
| 123 » c = context.WithValue(c, dsTxnBufParent, nil) |
| 124 » c = context.WithValue(c, dsTxnBufHaveLock, nil) |
| 125 » return c |
121 } | 126 } |
| 127 |
| 128 func (d *dsTxnBuf) GetTestable() ds.Testable { |
| 129 return d.state.parentDS.GetTestable() |
| 130 } |
OLD | NEW |