fsmonitor: don't leak a file descriptor in the status command
Not as big of a deal as a file that might need to be renamed/moved, but the fd
counts against process resources, so it should be managed.
--- a/hgext/fsmonitor/__init__.py Mon Dec 16 20:04:44 2024 -0500
+++ b/hgext/fsmonitor/__init__.py Mon Dec 16 20:24:56 2024 -0500
@@ -667,22 +667,24 @@
quiet = self.ui.quiet
self.ui.quiet = True
fout, ferr = self.ui.fout, self.ui.ferr
- self.ui.fout = self.ui.ferr = open(os.devnull, 'wb')
+
+ with open(os.devnull, 'wb') as fp:
+ self.ui.fout = self.ui.ferr = fp
- try:
- rv2 = orig(
- node1,
- node2,
- match,
- listignored,
- listclean,
- listunknown,
- listsubrepos,
- )
- finally:
- self.dirstate._fsmonitordisable = False
- self.ui.quiet = quiet
- self.ui.fout, self.ui.ferr = fout, ferr
+ try:
+ rv2 = orig(
+ node1,
+ node2,
+ match,
+ listignored,
+ listclean,
+ listunknown,
+ listsubrepos,
+ )
+ finally:
+ self.dirstate._fsmonitordisable = False
+ self.ui.quiet = quiet
+ self.ui.fout, self.ui.ferr = fout, ferr
# clean isn't tested since it's set to True above
with self.wlock():