remotefilelog: don't leak a file descriptor when garbage collecting cache
authorMatt Harbison <matt_harbison@yahoo.com>
Mon, 16 Dec 2024 21:16:30 -0500
changeset 52570 2380fa1158bd
parent 52569 4c7194ed56ab
child 52571 94fa2543d710
remotefilelog: don't leak a file descriptor when garbage collecting cache
hgext/remotefilelog/__init__.py
--- a/hgext/remotefilelog/__init__.py	Mon Dec 16 21:06:27 2024 -0500
+++ b/hgext/remotefilelog/__init__.py	Mon Dec 16 21:16:30 2024 -0500
@@ -867,9 +867,8 @@
         ui.warn(_(b"no known cache at %s\n") % cachepath)
         return
 
-    reposfile = open(repospath, 'rb')
-    repos = {r[:-1] for r in reposfile.readlines()}
-    reposfile.close()
+    with open(repospath, 'rb') as reposfile:
+        repos = {r[:-1] for r in reposfile.readlines()}
 
     # build list of useful files
     validrepos = []
@@ -941,9 +940,8 @@
     # write list of valid repos back
     oldumask = os.umask(0o002)
     try:
-        reposfile = open(repospath, 'wb')
-        reposfile.writelines([(b"%s\n" % r) for r in validrepos])
-        reposfile.close()
+        with open(repospath, 'wb') as reposfile:
+            reposfile.writelines([(b"%s\n" % r) for r in validrepos])
     finally:
         os.umask(oldumask)