Branch: Tag:


2018-02-26 17:08:33 by Henrik Grubbström (Grubba) <>

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].

131: Inside #if defined(DO_PIKE_CLEANUP)
   cleanup_module_support();    exit_operators();    exit_iterators(); +  exit_mc();    cleanup_program();    cleanup_error();    exit_backend(); -  exit_mc(); +     cleanup_gc();    cleanup_pike_types();