Mercurial > public > mercurial-scm > hg-stable
changeset 52586:058b051bc44f
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.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 16 Dec 2024 20:24:56 -0500 |
parents | 5502109ac769 |
children | 1a7bc756e3f2 |
files | hgext/fsmonitor/__init__.py |
diffstat | 1 files changed, 17 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- 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():