with: use context manager for file I/O in memusage
authorBryan O'Sullivan <bryano@fb.com>
Fri, 15 Jan 2016 13:14:45 -0800
changeset 27795 3e0d27d298b7
parent 27794 9a1f3f9bac5d
child 27796 f7f3958d39c0
with: use context manager for file I/O in memusage
contrib/memory.py
--- a/contrib/memory.py	Fri Jan 15 13:14:49 2016 -0800
+++ b/contrib/memory.py	Fri Jan 15 13:14:45 2016 -0800
@@ -15,20 +15,15 @@
 
 def memusage(ui):
     """Report memory usage of the current process."""
-    status = None
     result = {'peak': 0, 'rss': 0}
-    try:
+    with open('/proc/self/status', 'r') as status:
         # This will only work on systems with a /proc file system
         # (like Linux).
-        status = open('/proc/self/status', 'r')
         for line in status:
             parts = line.split()
             key = parts[0][2:-1].lower()
             if key in result:
                 result[key] = int(parts[1])
-    finally:
-        if status is not None:
-            status.close()
     ui.write_err(", ".join(["%s: %.1f MiB" % (key, value / 1024.0)
                             for key, value in result.iteritems()]) + "\n")