From a1b380a9c4e90bc53f19cd0f3c9d77f4a860a5da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Mon, 26 Feb 2018 17:48:55 +0100
Subject: [PATCH] Exit: Reorder the cleanup code somewhat.

exit_mc() calls exit_interleave_mutex(), which in turn calls
{init,exit}_threads_disable(), both of which mess with the
Pike_compile_cond. As the Pike_compile_cond is destroyed by
cleanup_pike_compiler() (called by cleanup_program()), make
sure that exit_mc() is called prior to cleanup_program().

Fixes issues on exit on some architectures and build options.

Potential fix for [PIKE-78]/[LysLysKOM 22448381].
---
 src/module.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/module.c b/src/module.c
index 6bf276f96b..306e724e9f 100644
--- a/src/module.c
+++ b/src/module.c
@@ -144,11 +144,11 @@ static void exit_builtin_modules(void)
   cleanup_module_support();
   exit_operators();
   exit_iterators();
+  exit_mc();
   cleanup_program();
   cleanup_compiler();
   cleanup_error();
   exit_backend();
-  exit_mc();
   cleanup_gc();
   cleanup_pike_types();
 
-- 
GitLab