changeset 52570:2380fa1158bd

remotefilelog: don't leak a file descriptor when garbage collecting cache
author Matt Harbison <matt_harbison@yahoo.com>
date Mon, 16 Dec 2024 21:16:30 -0500
parents 4c7194ed56ab
children 94fa2543d710
files hgext/remotefilelog/__init__.py
diffstat 1 files changed, 4 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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)