From c2a5ac3981d308b8e99a5e03a6075bf57873afab Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Wed, 16 Aug 2017 17:51:03 +0300 Subject: Ensure log file gets closed. --- mesonbuild/mesonmain.py | 6 ++++++ mesonbuild/mlog.py | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py index ed23f52..9efe4e3 100644 --- a/mesonbuild/mesonmain.py +++ b/mesonbuild/mesonmain.py @@ -135,6 +135,12 @@ If you want to change option values, use the mesonconf tool instead.''' def generate(self): env = environment.Environment(self.source_dir, self.build_dir, self.meson_script_launcher, self.options, self.original_cmd_line_args) mlog.initialize(env.get_log_dir()) + try: + self._generate(env) + finally: + mlog.shutdown() + + def _generate(self, env): mlog.debug('Build started at', datetime.datetime.now().isoformat()) mlog.debug('Python binary:', sys.executable) mlog.debug('Python system:', platform.system()) diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py index 82ee6ba..659c8f5 100644 --- a/mesonbuild/mlog.py +++ b/mesonbuild/mlog.py @@ -31,7 +31,9 @@ def initialize(logdir): def shutdown(): global log_file if log_file is not None: - log_file.close() + exception_around_goer = log_file + log_file = None + exception_around_goer.close() class AnsiDecorator: plain_code = "\033[0m" -- cgit v1.1