summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2017-05-09 02:41:24 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2017-05-09 02:41:24 +0200
commitfe8f4c0791547ab9ade78378b1d6021f5838f1ea (patch)
treef3a172059517c5920d4fba71f03e6c4706d2f796
parent397f56881ba04a6bcec32bd45616b4382834dab3 (diff)
downloadpsutil-fe8f4c0791547ab9ade78378b1d6021f5838f1ea.tar.gz
refactoring
-rw-r--r--psutil/_common.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/psutil/_common.py b/psutil/_common.py
index 14b564a0..2d3e5c2f 100644
--- a/psutil/_common.py
+++ b/psutil/_common.py
@@ -475,7 +475,15 @@ class _WrapNumbers:
self.lock = threading.Lock()
self.cache = {}
self.reminders = {}
- self.rmap = defaultdict(list)
+ self.rmap = {}
+
+ def _add_dict(self, input_dict, name):
+ assert name not in self.cache
+ assert name not in self.reminders
+ assert name not in self.rmap
+ self.cache[name] = input_dict
+ self.reminders[name] = defaultdict(int)
+ self.rmap[name] = defaultdict(list)
def _remove_dead_reminders(self, input_dict, name):
"""In case the number of keys changed between calls (e.g. a
@@ -484,15 +492,14 @@ class _WrapNumbers:
old_dict = self.cache[name]
gone_keys = set(old_dict.keys()) - set(input_dict.keys())
for gone_key in gone_keys:
- for remkey in self.rmap[name + "-" + gone_key]:
+ for remkey in self.rmap[name][gone_key]:
del self.reminders[name][remkey]
- del self.rmap[name + "-" + gone_key]
+ del self.rmap[name][gone_key]
def run(self, input_dict, name):
if name not in self.cache:
# This was the first call.
- self.cache[name] = input_dict
- self.reminders[name] = defaultdict(int)
+ self._add_dict(input_dict, name)
return input_dict
self._remove_dead_reminders(input_dict, name)
@@ -516,7 +523,7 @@ class _WrapNumbers:
if input_value < old_value:
self.reminders[name][remkey] += old_value
bits.append(input_value + self.reminders[name][remkey])
- self.rmap[name + "-" + key].append(remkey)
+ self.rmap[name][key].append(remkey)
new_dict[key] = input_nt._make(bits)
@@ -531,7 +538,7 @@ class _WrapNumbers:
self.rmap.clear()
else:
self.cache.pop(name)
- self.reminders[name].clear()
+ self.reminders.pop(name)
self.rmap.pop(name)