[K/N] Refactor unhandled exception handling API
* 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.
This commit is contained in:
committed by
Space
parent
766857881a
commit
7e04bb4bf1
@@ -106,7 +106,7 @@ RuntimeState* initRuntime() {
|
||||
// Switch thread state because worker and globals inits require the runnable state.
|
||||
// This call may block if GC requested suspending threads.
|
||||
stateGuard = kotlin::ThreadStateGuard(result->memoryState, kotlin::ThreadState::kRunnable);
|
||||
result->worker = WorkerInit(result->memoryState, true);
|
||||
result->worker = WorkerInit(result->memoryState);
|
||||
firstRuntime = atomicAdd(&aliveRuntimesCount, 1) == 1;
|
||||
if (!kotlin::kSupportsMultipleMutators && !firstRuntime) {
|
||||
konan::consoleErrorf("This GC implementation does not support multiple mutator threads.");
|
||||
@@ -130,7 +130,7 @@ RuntimeState* initRuntime() {
|
||||
// Switch thread state because worker and globals inits require the runnable state.
|
||||
// This call may block if GC requested suspending threads.
|
||||
stateGuard = kotlin::ThreadStateGuard(result->memoryState, kotlin::ThreadState::kRunnable);
|
||||
result->worker = WorkerInit(result->memoryState, true);
|
||||
result->worker = WorkerInit(result->memoryState);
|
||||
}
|
||||
|
||||
InitOrDeinitGlobalVariables(ALLOC_THREAD_LOCAL_GLOBALS, result->memoryState);
|
||||
|
||||
Reference in New Issue
Block a user