7e04bb4bf1
* Do not reset unhandled exception hook * Add processUnhandledException to perform default unhandled exception processing * Add terminateWithUnhandledException to report the unhandled exception and terminate the program * Use the default unhandled exception processing in entrypoint, interop boundaries and in Worker.executeAfter * Add -Xworker-exception-handling to control exception processing of Worker.executeAfter. By default its the old behaviour with the old MM, and new behaviour with the new MM.
28 lines
905 B
C++
28 lines
905 B
C++
/*
|
|
* Copyright 2010-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
|
* that can be found in the LICENSE file.
|
|
*/
|
|
|
|
#include "CompilerConstants.hpp"
|
|
|
|
#include "Common.h"
|
|
|
|
using namespace kotlin;
|
|
|
|
// These are defined by overrideRuntimeGlobals in IrToBitcode.kt
|
|
RUNTIME_WEAK int32_t Kotlin_destroyRuntimeMode = 1;
|
|
RUNTIME_WEAK int32_t Kotiln_gcAggressive = 0;
|
|
RUNTIME_WEAK int32_t Kotlin_workerExceptionHandling = 0;
|
|
|
|
ALWAYS_INLINE compiler::DestroyRuntimeMode compiler::destroyRuntimeMode() noexcept {
|
|
return static_cast<compiler::DestroyRuntimeMode>(Kotlin_destroyRuntimeMode);
|
|
}
|
|
|
|
ALWAYS_INLINE bool compiler::gcAggressive() noexcept {
|
|
return Kotiln_gcAggressive != 0;
|
|
}
|
|
|
|
ALWAYS_INLINE compiler::WorkerExceptionHandling compiler::workerExceptionHandling() noexcept {
|
|
return static_cast<compiler::WorkerExceptionHandling>(Kotlin_workerExceptionHandling);
|
|
}
|