aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-08-16 17:51:03 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2017-08-18 12:08:50 +0300
commitc2a5ac3981d308b8e99a5e03a6075bf57873afab (patch)
tree307fceeff63390c6963b8d661ff88ef765070c5e
parent50fb7d37abc02b674b66071b51b1a2862fabb3cd (diff)
downloadmeson-c2a5ac3981d308b8e99a5e03a6075bf57873afab.zip
meson-c2a5ac3981d308b8e99a5e03a6075bf57873afab.tar.gz
meson-c2a5ac3981d308b8e99a5e03a6075bf57873afab.tar.bz2
Ensure log file gets closed.
-rw-r--r--mesonbuild/mesonmain.py6
-rw-r--r--mesonbuild/mlog.py4
2 files changed, 9 insertions, 1 deletions
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"