mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-08 14:03:14 +00:00
Fix #1606 (Call runtime._cleanup_runtime_contextless() for os.exit)
This commit is contained in:
@@ -680,6 +680,7 @@ make_directory :: proc(path: string, mode: u32 = 0o775) -> Errno {
|
||||
}
|
||||
|
||||
exit :: proc "contextless" (code: int) -> ! {
|
||||
runtime._cleanup_runtime_contextless()
|
||||
_unix_exit(i32(code))
|
||||
}
|
||||
|
||||
|
||||
@@ -419,6 +419,7 @@ set_current_directory :: proc(path: string) -> (err: Errno) {
|
||||
}
|
||||
|
||||
exit :: proc "contextless" (code: int) -> ! {
|
||||
runtime._cleanup_runtime_contextless()
|
||||
_unix_exit(c.int(code))
|
||||
}
|
||||
|
||||
|
||||
@@ -802,6 +802,7 @@ set_current_directory :: proc(path: string) -> (err: Errno) {
|
||||
}
|
||||
|
||||
exit :: proc "contextless" (code: int) -> ! {
|
||||
runtime._cleanup_runtime_contextless()
|
||||
_unix_exit(c.int(code))
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ foreign import libc "system:c"
|
||||
import "core:runtime"
|
||||
import "core:strings"
|
||||
import "core:c"
|
||||
import "core:runtime"
|
||||
|
||||
Handle :: distinct i32
|
||||
Pid :: distinct i32
|
||||
@@ -658,6 +659,7 @@ set_current_directory :: proc(path: string) -> (err: Errno) {
|
||||
}
|
||||
|
||||
exit :: proc "contextless" (code: int) -> ! {
|
||||
runtime._cleanup_runtime_contextless()
|
||||
_unix_exit(c.int(code))
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package os
|
||||
|
||||
import "core:sys/wasm/wasi"
|
||||
import "core:runtime"
|
||||
|
||||
Handle :: distinct i32
|
||||
Errno :: distinct i32
|
||||
@@ -93,5 +94,6 @@ heap_free :: proc(ptr: rawptr) {
|
||||
|
||||
|
||||
exit :: proc "contextless" (code: int) -> ! {
|
||||
runtime._cleanup_runtime_contextless()
|
||||
wasi.proc_exit(wasi.exitcode_t(code))
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
package os
|
||||
|
||||
import win32 "core:sys/windows"
|
||||
import "core:runtime"
|
||||
|
||||
Handle :: distinct uintptr
|
||||
File_Time :: distinct u64
|
||||
@@ -128,6 +129,7 @@ get_page_size :: proc() -> int {
|
||||
|
||||
|
||||
exit :: proc "contextless" (code: int) -> ! {
|
||||
runtime._cleanup_runtime_contextless()
|
||||
win32.ExitProcess(win32.DWORD(code))
|
||||
}
|
||||
|
||||
|
||||
@@ -459,6 +459,11 @@ _cleanup_runtime :: proc() {
|
||||
default_temp_allocator_destroy(&global_default_temp_allocator_data)
|
||||
}
|
||||
|
||||
_cleanup_runtime_contextless :: proc "contextless" () {
|
||||
context = default_context()
|
||||
_cleanup_runtime()
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
/////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user