| Index: go/src/infra/gae/epservice/example/service_cas.go
|
| diff --git a/go/src/infra/gae/epservice/example/service_cas.go b/go/src/infra/gae/epservice/example/service_cas.go
|
| index f01804ec488218dcbfcd47732a3885d8319f929f..4c2d8214f9cf0d303b2e3ac198d835edffc1ab3b 100644
|
| --- a/go/src/infra/gae/epservice/example/service_cas.go
|
| +++ b/go/src/infra/gae/epservice/example/service_cas.go
|
| @@ -6,8 +6,8 @@ package example
|
|
|
| import (
|
| "golang.org/x/net/context"
|
| - "infra/gae/libs/wrapper"
|
| - "infra/gae/libs/wrapper/gae"
|
| + "infra/gae/libs/gae"
|
| + "infra/gae/libs/gae/prod"
|
|
|
| "github.com/GoogleCloudPlatform/go-endpoints/endpoints"
|
| )
|
| @@ -21,18 +21,20 @@ type CASReq struct {
|
| }
|
|
|
| // CAS does an atomic compare-and-swap on a counter.
|
| -func (Example) CAS(c endpoints.Context, r *CASReq) (err error) {
|
| +func (Example) CAS(c context.Context, r *CASReq) (err error) {
|
| success := false
|
| - ds := wrapper.GetDS(gae.Use(context.Background(), c))
|
| - err = ds.RunInTransaction(func(context.Context) error {
|
| - ctr := &Counter{ID: r.Name}
|
| - if err := ds.Get(ctr); err != nil {
|
| + c = prod.Use(c)
|
| + err = gae.GetRDS(c).RunInTransaction(func(c context.Context) error {
|
| + rds := gae.GetRDS(c)
|
| + key := rds.NewKey("Counter", r.Name, 0, nil)
|
| + ctr := &Counter{}
|
| + if err := rds.Get(key, ctr); err != nil {
|
| return err
|
| }
|
| if ctr.Val == r.OldVal {
|
| success = true
|
| ctr.Val = r.NewVal
|
| - _, err := ds.Put(ctr)
|
| + _, err := rds.Put(key, ctr)
|
| return err
|
| }
|
| success = false
|
|
|