summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2017-05-09 02:33:53 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2017-05-09 02:33:53 +0200
commit397f56881ba04a6bcec32bd45616b4382834dab3 (patch)
treee09d545ecf8e7066446045d531124af1647d616a
parent42af6fc151d0bff8ad07e10ed7f11f2151744d0c (diff)
downloadpsutil-397f56881ba04a6bcec32bd45616b4382834dab3.tar.gz
refactoring
-rw-r--r--psutil/_common.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/psutil/_common.py b/psutil/_common.py
index 350ffe79..14b564a0 100644
--- a/psutil/_common.py
+++ b/psutil/_common.py
@@ -474,7 +474,7 @@ class _WrapNumbers:
def __init__(self):
self.lock = threading.Lock()
self.cache = {}
- self.reminders = defaultdict(int)
+ self.reminders = {}
self.rmap = defaultdict(list)
def _remove_dead_reminders(self, input_dict, name):
@@ -485,13 +485,14 @@ class _WrapNumbers:
gone_keys = set(old_dict.keys()) - set(input_dict.keys())
for gone_key in gone_keys:
for remkey in self.rmap[name + "-" + gone_key]:
- del self.reminders[remkey]
+ del self.reminders[name][remkey]
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)
return input_dict
self._remove_dead_reminders(input_dict, name)
@@ -513,8 +514,8 @@ class _WrapNumbers:
old_value = old_nt[i]
remkey = (name, key, i)
if input_value < old_value:
- self.reminders[remkey] += old_value
- bits.append(input_value + self.reminders[remkey])
+ self.reminders[name][remkey] += old_value
+ bits.append(input_value + self.reminders[name][remkey])
self.rmap[name + "-" + key].append(remkey)
new_dict[key] = input_nt._make(bits)
@@ -530,15 +531,14 @@ class _WrapNumbers:
self.rmap.clear()
else:
self.cache.pop(name)
+ self.reminders[name].clear()
self.rmap.pop(name)
-_wn = _WrapNumbers()
-
-
def wrap_numbers(input_dict, name):
with _wn.lock:
return _wn.run(input_dict, name)
+_wn = _WrapNumbers()
wrap_numbers.cache_clear = _wn.cache_clear