mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-03 22:28:46 +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) -> ! {
|
exit :: proc "contextless" (code: int) -> ! {
|
||||||
|
runtime._cleanup_runtime_contextless()
|
||||||
_unix_exit(i32(code))
|
_unix_exit(i32(code))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -419,6 +419,7 @@ set_current_directory :: proc(path: string) -> (err: Errno) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
exit :: proc "contextless" (code: int) -> ! {
|
exit :: proc "contextless" (code: int) -> ! {
|
||||||
|
runtime._cleanup_runtime_contextless()
|
||||||
_unix_exit(c.int(code))
|
_unix_exit(c.int(code))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -802,6 +802,7 @@ set_current_directory :: proc(path: string) -> (err: Errno) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
exit :: proc "contextless" (code: int) -> ! {
|
exit :: proc "contextless" (code: int) -> ! {
|
||||||
|
runtime._cleanup_runtime_contextless()
|
||||||
_unix_exit(c.int(code))
|
_unix_exit(c.int(code))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ foreign import libc "system:c"
|
|||||||
import "core:runtime"
|
import "core:runtime"
|
||||||
import "core:strings"
|
import "core:strings"
|
||||||
import "core:c"
|
import "core:c"
|
||||||
|
import "core:runtime"
|
||||||
|
|
||||||
Handle :: distinct i32
|
Handle :: distinct i32
|
||||||
Pid :: distinct i32
|
Pid :: distinct i32
|
||||||
@@ -658,6 +659,7 @@ set_current_directory :: proc(path: string) -> (err: Errno) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
exit :: proc "contextless" (code: int) -> ! {
|
exit :: proc "contextless" (code: int) -> ! {
|
||||||
|
runtime._cleanup_runtime_contextless()
|
||||||
_unix_exit(c.int(code))
|
_unix_exit(c.int(code))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package os
|
package os
|
||||||
|
|
||||||
import "core:sys/wasm/wasi"
|
import "core:sys/wasm/wasi"
|
||||||
|
import "core:runtime"
|
||||||
|
|
||||||
Handle :: distinct i32
|
Handle :: distinct i32
|
||||||
Errno :: distinct i32
|
Errno :: distinct i32
|
||||||
@@ -93,5 +94,6 @@ heap_free :: proc(ptr: rawptr) {
|
|||||||
|
|
||||||
|
|
||||||
exit :: proc "contextless" (code: int) -> ! {
|
exit :: proc "contextless" (code: int) -> ! {
|
||||||
|
runtime._cleanup_runtime_contextless()
|
||||||
wasi.proc_exit(wasi.exitcode_t(code))
|
wasi.proc_exit(wasi.exitcode_t(code))
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
package os
|
package os
|
||||||
|
|
||||||
import win32 "core:sys/windows"
|
import win32 "core:sys/windows"
|
||||||
|
import "core:runtime"
|
||||||
|
|
||||||
Handle :: distinct uintptr
|
Handle :: distinct uintptr
|
||||||
File_Time :: distinct u64
|
File_Time :: distinct u64
|
||||||
@@ -128,6 +129,7 @@ get_page_size :: proc() -> int {
|
|||||||
|
|
||||||
|
|
||||||
exit :: proc "contextless" (code: int) -> ! {
|
exit :: proc "contextless" (code: int) -> ! {
|
||||||
|
runtime._cleanup_runtime_contextless()
|
||||||
win32.ExitProcess(win32.DWORD(code))
|
win32.ExitProcess(win32.DWORD(code))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -459,6 +459,11 @@ _cleanup_runtime :: proc() {
|
|||||||
default_temp_allocator_destroy(&global_default_temp_allocator_data)
|
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