From c6b3f6659eda9b0b255ddc2d24accdd998b5938d Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 20 Jun 2018 09:08:13 +0200 Subject: Fix race in phase switch during failure --- build2/context.cxx | 3 +++ 1 file changed, 3 insertions(+) (limited to 'build2') diff --git a/build2/context.cxx b/build2/context.cxx index 3d2a242..c704cd2 100644 --- a/build2/context.cxx +++ b/build2/context.cxx @@ -309,7 +309,10 @@ namespace build2 // longer be valid. // if (n == run_phase::load && uncaught_exception ()) + { + mlock l (phase_mutex::instance.m_); phase_mutex::instance.fail_ = true; + } bool r (phase_mutex::instance.relock (n, o)); phase_lock::instance->p = o; -- cgit v1.1