+ case MessageType::FINALIZE: {
+ assert_msg_size("FINALIZE", s_mc_message_int_t);
+ bool terminate_asap = ((s_mc_message_int_t*)message_buffer.data())->value;
+ XBT_DEBUG("Finalize (terminate = %d)", (int)terminate_asap);
+ if (not terminate_asap) {
+ if (XBT_LOG_ISENABLED(mc_client, xbt_log_priority_debug))
+ kernel::EngineImpl::get_instance()->display_all_actor_status();
+#if HAVE_SMPI
+ XBT_DEBUG("Smpi_enabled: %d", (int)smpi_enabled());
+ if (smpi_enabled())
+ SMPI_finalize();
+#endif
+ }
+ coverage_checkpoint();
+ xbt_assert(channel_.send(MessageType::DEADLOCK_CHECK_REPLY) == 0, // DEADLOCK_CHECK_REPLY, really?
+ "Could not answer to FINALIZE");
+ std::fflush(stdout);
+ if (terminate_asap)
+ ::_Exit(0);
+ break;
+ }
+