Index: go/src/infra/gae/libs/gae/memory/raw_datstore_data.go |
diff --git a/go/src/infra/gae/libs/gae/memory/raw_datstore_data.go b/go/src/infra/gae/libs/gae/memory/raw_datstore_data.go |
index 9af0dae2671e967a837f23f73d425dd0fd133a04..70533f693668bb993c045f5495bd708b4e76cc5a 100644 |
--- a/go/src/infra/gae/libs/gae/memory/raw_datstore_data.go |
+++ b/go/src/infra/gae/libs/gae/memory/raw_datstore_data.go |
@@ -19,8 +19,6 @@ import ( |
//////////////////////////////// dataStoreData ///////////////////////////////// |
type dataStoreData struct { |
- gae.BrokenFeatures |
- |
rwlock sync.RWMutex |
// See README.md for store schema. |
store *memStore |
@@ -30,15 +28,13 @@ type dataStoreData struct { |
var ( |
_ = memContextObj((*dataStoreData)(nil)) |
_ = sync.Locker((*dataStoreData)(nil)) |
- _ = gae.Testable((*dataStoreData)(nil)) |
) |
func newDataStoreData() *dataStoreData { |
store := newMemStore() |
return &dataStoreData{ |
- BrokenFeatures: gae.BrokenFeatures{DefaultError: errors.New("INTERNAL_ERROR")}, |
- store: store, |
- snap: store.Snapshot(), // empty but better than a nil pointer. |
+ store: store, |
+ snap: store.Snapshot(), // empty but better than a nil pointer. |
} |
} |
@@ -294,11 +290,10 @@ func (d *dataStoreData) mkTxn(o *gae.DSTransactionOptions) (memContextObj, error |
return &txnDataStoreData{ |
// alias to the main datastore's so that testing code can have primitive |
// access to break features inside of transactions. |
- BrokenFeatures: &d.BrokenFeatures, |
- parent: d, |
- isXG: o != nil && o.XG, |
- snap: d.store.Snapshot(), |
- muts: map[string][]txnMutation{}, |
+ parent: d, |
+ isXG: o != nil && o.XG, |
+ snap: d.store.Snapshot(), |
+ muts: map[string][]txnMutation{}, |
}, nil |
} |
@@ -312,7 +307,6 @@ type txnMutation struct { |
} |
type txnDataStoreData struct { |
- *gae.BrokenFeatures |
sync.Mutex |
parent *dataStoreData |
@@ -329,11 +323,7 @@ type txnDataStoreData struct { |
// length of encoded keys + values. |
} |
-var ( |
- _ = memContextObj((*txnDataStoreData)(nil)) |
- _ = sync.Locker((*txnDataStoreData)(nil)) |
- _ = gae.Testable((*txnDataStoreData)(nil)) |
-) |
+var _ memContextObj = (*txnDataStoreData)(nil) |
const xgEGLimit = 25 |
@@ -351,13 +341,13 @@ func (*txnDataStoreData) mkTxn(*gae.DSTransactionOptions) (memContextObj, error) |
return nil, errors.New("datastore: nested transactions are not supported") |
} |
-func (td *txnDataStoreData) RunIfNotBroken(f func() error) error { |
+func (td *txnDataStoreData) isBroken() error { |
// Slightly different from the SDK... datastore and taskqueue each implement |
// this here, where in the SDK only datastore.transaction.Call does. |
if atomic.LoadInt32(&td.closed) == 1 { |
return errors.New("datastore: transaction context has expired") |
} |
- return td.BrokenFeatures.RunIfNotBroken(f) |
+ return nil |
} |
// writeMutation ensures that this transaction can support the given key/value |