Index: appengine_module/gae_ts_mon/deferred_metric_store.py |
diff --git a/appengine_module/gae_ts_mon/deferred_metric_store.py b/appengine_module/gae_ts_mon/deferred_metric_store.py |
index e063fa74a0df1d3d0da07c50636abb487f5bd9a7..1af497b209acaa8d07392f5a1c725df7ade4dd62 100644 |
--- a/appengine_module/gae_ts_mon/deferred_metric_store.py |
+++ b/appengine_module/gae_ts_mon/deferred_metric_store.py |
@@ -23,7 +23,7 @@ class DeferredMetricStore(metric_store.MetricStore): |
self._thread_local = threading.local() |
def initialize_context(self): |
- self._thread_local.deferred = {} |
+ self._thread_local.deferred = [] |
def finalize_context(self): |
try: |
@@ -34,7 +34,7 @@ class DeferredMetricStore(metric_store.MetricStore): |
del self._thread_local.deferred |
self._thread_local.finalizing = True |
try: |
- self._base_store.modify_multi(deferred.itervalues()) |
+ self._base_store.modify_multi(deferred) |
finally: |
self._thread_local.finalizing = False |
@@ -58,9 +58,7 @@ class DeferredMetricStore(metric_store.MetricStore): |
'your WSGIApplication with gae_ts_mon.initialize?') |
self._base_store.set(name, fields, value, enforce_ge) |
else: |
- key = (name, fields) |
- deferred[key] = metric_store.combine_modifications( |
- deferred.get(key), |
+ deferred.append( |
metric_store.Modification(name, fields, 'set', (value, enforce_ge))) |
def incr(self, name, fields, delta, modify_fn=operator.add): |
@@ -74,9 +72,7 @@ class DeferredMetricStore(metric_store.MetricStore): |
'your WSGIApplication with gae_ts_mon.initialize?') |
self._base_store.incr(name, fields, delta, modify_fn) |
else: |
- key = (name, fields) |
- deferred[key] = metric_store.combine_modifications( |
- deferred.get(key), |
+ deferred.append( |
metric_store.Modification(name, fields, 'incr', (delta, modify_fn))) |
def reset_for_unittest(self, name=None): |
@@ -87,6 +83,7 @@ class DeferredMetricStore(metric_store.MetricStore): |
except AttributeError: |
pass |
else: |
- for key in deferred.keys(): |
- if name is None or key[0] == name: |
- del deferred[key] |
+ if name is None: |
+ self._thread_local.deferred = [] |
+ else: |
+ self._thread_local.deferred = [x for x in deferred if x.name != name] |