| 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]
|
|
|