aboutsummaryrefslogtreecommitdiff
path: root/core/os
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-08-08 12:10:01 +0100
committergingerBill <gingerBill@users.noreply.github.com>2025-08-08 12:10:01 +0100
commit7642e0a0e0bb0ff79da6ac7a2ba3b787afa32b78 (patch)
treeaec4baaf441f58b3c6c9a8a55c61e5f8c6218f4b /core/os
parent3194fda8f3b01affc086eec4102d924277fe9f43 (diff)
Require `@(init)` and `@(fini)` to be `proc "contextless" ()`
Diffstat (limited to 'core/os')
-rw-r--r--core/os/os2/allocators.odin4
-rw-r--r--core/os/os2/file_posix.odin4
-rw-r--r--core/os/os2/file_wasi.odin4
-rw-r--r--core/os/os2/file_windows.odin8
-rw-r--r--core/os/os2/path_windows.odin2
-rw-r--r--core/os/os_darwin.odin6
-rw-r--r--core/os/os_freebsd.odin6
-rw-r--r--core/os/os_haiku.odin6
-rw-r--r--core/os/os_linux.odin6
-rw-r--r--core/os/os_netbsd.odin6
-rw-r--r--core/os/os_openbsd.odin6
-rw-r--r--core/os/os_wasi.odin10
-rw-r--r--core/os/os_windows.odin6
13 files changed, 45 insertions, 29 deletions
diff --git a/core/os/os2/allocators.odin b/core/os/os2/allocators.odin
index cedfbdee1..36a7d72be 100644
--- a/core/os/os2/allocators.odin
+++ b/core/os/os2/allocators.odin
@@ -16,7 +16,7 @@ MAX_TEMP_ARENA_COLLISIONS :: MAX_TEMP_ARENA_COUNT - 1
global_default_temp_allocator_arenas: [MAX_TEMP_ARENA_COUNT]runtime.Arena
@(fini, private)
-temp_allocator_fini :: proc() {
+temp_allocator_fini :: proc "contextless" () {
for &arena in global_default_temp_allocator_arenas {
runtime.arena_destroy(&arena)
}
@@ -69,6 +69,6 @@ _temp_allocator_end :: proc(tmp: runtime.Arena_Temp) {
}
@(init, private)
-init_thread_local_cleaner :: proc() {
+init_thread_local_cleaner :: proc "contextless" () {
runtime.add_thread_local_cleaner(temp_allocator_fini)
}
diff --git a/core/os/os2/file_posix.odin b/core/os/os2/file_posix.odin
index 2d74618ee..fed8d766c 100644
--- a/core/os/os2/file_posix.odin
+++ b/core/os/os2/file_posix.odin
@@ -25,8 +25,8 @@ File_Impl :: struct {
}
@(init)
-init_std_files :: proc() {
- new_std :: proc(impl: ^File_Impl, fd: posix.FD, name: cstring) -> ^File {
+init_std_files :: proc "contextless" () {
+ new_std :: proc "contextless" (impl: ^File_Impl, fd: posix.FD, name: cstring) -> ^File {
impl.file.impl = impl
impl.fd = fd
impl.allocator = runtime.nil_allocator()
diff --git a/core/os/os2/file_wasi.odin b/core/os/os2/file_wasi.odin
index 0245841e3..1d417ffb1 100644
--- a/core/os/os2/file_wasi.odin
+++ b/core/os/os2/file_wasi.odin
@@ -30,8 +30,8 @@ Preopen :: struct {
preopens: []Preopen
@(init)
-init_std_files :: proc() {
- new_std :: proc(impl: ^File_Impl, fd: wasi.fd_t, name: string) -> ^File {
+init_std_files :: proc "contextless" () {
+ new_std :: proc "contextless" (impl: ^File_Impl, fd: wasi.fd_t, name: string) -> ^File {
impl.file.impl = impl
impl.allocator = runtime.nil_allocator()
impl.fd = fd
diff --git a/core/os/os2/file_windows.odin b/core/os/os2/file_windows.odin
index 25e9cb4b0..b39e65fe2 100644
--- a/core/os/os2/file_windows.odin
+++ b/core/os/os2/file_windows.odin
@@ -43,8 +43,8 @@ File_Impl :: struct {
}
@(init)
-init_std_files :: proc() {
- new_std :: proc(impl: ^File_Impl, code: u32, name: string) -> ^File {
+init_std_files :: proc "contextless" () {
+ new_std :: proc "contextless" (impl: ^File_Impl, code: u32, name: string) -> ^File {
impl.file.impl = impl
impl.allocator = runtime.nil_allocator()
@@ -77,7 +77,7 @@ init_std_files :: proc() {
stderr = new_std(&files[2], win32.STD_ERROR_HANDLE, "<stderr>")
}
-_handle :: proc(f: ^File) -> win32.HANDLE {
+_handle :: proc "contextless" (f: ^File) -> win32.HANDLE {
return win32.HANDLE(_fd(f))
}
@@ -234,7 +234,7 @@ _clone :: proc(f: ^File) -> (clone: ^File, err: Error) {
return _new_file(uintptr(clonefd), name(f), file_allocator())
}
-_fd :: proc(f: ^File) -> uintptr {
+_fd :: proc "contextless" (f: ^File) -> uintptr {
if f == nil || f.impl == nil {
return INVALID_HANDLE
}
diff --git a/core/os/os2/path_windows.odin b/core/os/os2/path_windows.odin
index e0a00b07a..e5a1545ec 100644
--- a/core/os/os2/path_windows.odin
+++ b/core/os/os2/path_windows.odin
@@ -160,7 +160,7 @@ _get_executable_path :: proc(allocator: runtime.Allocator) -> (path: string, err
can_use_long_paths: bool
@(init)
-init_long_path_support :: proc() {
+init_long_path_support :: proc "contextless" () {
can_use_long_paths = false
key: win32.HKEY
diff --git a/core/os/os_darwin.odin b/core/os/os_darwin.odin
index 1010d27a8..77b5825dd 100644
--- a/core/os/os_darwin.odin
+++ b/core/os/os_darwin.odin
@@ -1226,7 +1226,8 @@ _processor_core_count :: proc() -> int {
}
@(private, require_results)
-_alloc_command_line_arguments :: proc() -> []string {
+_alloc_command_line_arguments :: proc "contextless" () -> []string {
+ context = runtime.default_context()
res := make([]string, len(runtime.args__))
for _, i in res {
res[i] = string(runtime.args__[i])
@@ -1235,7 +1236,8 @@ _alloc_command_line_arguments :: proc() -> []string {
}
@(private, fini)
-_delete_command_line_arguments :: proc() {
+_delete_command_line_arguments :: proc "contextless" () {
+ context = runtime.default_context()
delete(args)
}
diff --git a/core/os/os_freebsd.odin b/core/os/os_freebsd.odin
index aeffdcb87..0542e10dc 100644
--- a/core/os/os_freebsd.odin
+++ b/core/os/os_freebsd.odin
@@ -965,7 +965,8 @@ _processor_core_count :: proc() -> int {
@(private, require_results)
-_alloc_command_line_arguments :: proc() -> []string {
+_alloc_command_line_arguments :: proc "contextless" () -> []string {
+ context = runtime.default_context()
res := make([]string, len(runtime.args__))
for _, i in res {
res[i] = string(runtime.args__[i])
@@ -974,6 +975,7 @@ _alloc_command_line_arguments :: proc() -> []string {
}
@(private, fini)
-_delete_command_line_arguments :: proc() {
+_delete_command_line_arguments :: proc "contextless" () {
+ context = runtime.default_context()
delete(args)
}
diff --git a/core/os/os_haiku.odin b/core/os/os_haiku.odin
index b56d516a4..e7c71338b 100644
--- a/core/os/os_haiku.odin
+++ b/core/os/os_haiku.odin
@@ -317,7 +317,8 @@ file_size :: proc(fd: Handle) -> (i64, Error) {
args := _alloc_command_line_arguments()
@(private, require_results)
-_alloc_command_line_arguments :: proc() -> []string {
+_alloc_command_line_arguments :: proc "contextless" () -> []string {
+ context = runtime.default_context()
res := make([]string, len(runtime.args__))
for arg, i in runtime.args__ {
res[i] = string(arg)
@@ -326,7 +327,8 @@ _alloc_command_line_arguments :: proc() -> []string {
}
@(private, fini)
-_delete_command_line_arguments :: proc() {
+_delete_command_line_arguments :: proc "contextless" () {
+ context = runtime.default_context()
delete(args)
}
diff --git a/core/os/os_linux.odin b/core/os/os_linux.odin
index 66c30711d..15d230820 100644
--- a/core/os/os_linux.odin
+++ b/core/os/os_linux.odin
@@ -1098,7 +1098,8 @@ _processor_core_count :: proc() -> int {
}
@(private, require_results)
-_alloc_command_line_arguments :: proc() -> []string {
+_alloc_command_line_arguments :: proc "contextless" () -> []string {
+ context = runtime.default_context()
res := make([]string, len(runtime.args__))
for _, i in res {
res[i] = string(runtime.args__[i])
@@ -1107,7 +1108,8 @@ _alloc_command_line_arguments :: proc() -> []string {
}
@(private, fini)
-_delete_command_line_arguments :: proc() {
+_delete_command_line_arguments :: proc "contextless" () {
+ context = runtime.default_context()
delete(args)
}
diff --git a/core/os/os_netbsd.odin b/core/os/os_netbsd.odin
index accc5abcd..30511012f 100644
--- a/core/os/os_netbsd.odin
+++ b/core/os/os_netbsd.odin
@@ -1015,7 +1015,8 @@ _processor_core_count :: proc() -> int {
}
@(private, require_results)
-_alloc_command_line_arguments :: proc() -> []string {
+_alloc_command_line_arguments :: proc "contextless" () -> []string {
+ context = runtime.default_context()
res := make([]string, len(runtime.args__))
for _, i in res {
res[i] = string(runtime.args__[i])
@@ -1024,6 +1025,7 @@ _alloc_command_line_arguments :: proc() -> []string {
}
@(private, fini)
-_delete_command_line_arguments :: proc() {
+_delete_command_line_arguments :: proc "contextless" () {
+ context = runtime.default_context()
delete(args)
}
diff --git a/core/os/os_openbsd.odin b/core/os/os_openbsd.odin
index ec9181ba6..50ee37dff 100644
--- a/core/os/os_openbsd.odin
+++ b/core/os/os_openbsd.odin
@@ -915,7 +915,8 @@ _processor_core_count :: proc() -> int {
}
@(private, require_results)
-_alloc_command_line_arguments :: proc() -> []string {
+_alloc_command_line_arguments :: proc "contextless" () -> []string {
+ context = runtime.default_context()
res := make([]string, len(runtime.args__))
for _, i in res {
res[i] = string(runtime.args__[i])
@@ -924,6 +925,7 @@ _alloc_command_line_arguments :: proc() -> []string {
}
@(private, fini)
-_delete_command_line_arguments :: proc() {
+_delete_command_line_arguments :: proc "contextless" () {
+ context = runtime.default_context()
delete(args)
}
diff --git a/core/os/os_wasi.odin b/core/os/os_wasi.odin
index f135e4d42..53c242a01 100644
--- a/core/os/os_wasi.odin
+++ b/core/os/os_wasi.odin
@@ -28,16 +28,18 @@ stderr: Handle = 2
args := _alloc_command_line_arguments()
@(private, require_results)
-_alloc_command_line_arguments :: proc() -> (args: []string) {
- args = make([]string, len(runtime.args__))
+_alloc_command_line_arguments :: proc "contextless" () -> []string {
+ context = runtime.default_context()
+ args := make([]string, len(runtime.args__))
for &arg, i in args {
arg = string(runtime.args__[i])
}
- return
+ return args
}
@(private, fini)
-_delete_command_line_arguments :: proc() {
+_delete_command_line_arguments :: proc "contextless" () {
+ context = runtime.default_context()
delete(args)
}
diff --git a/core/os/os_windows.odin b/core/os/os_windows.odin
index 3c1725cc5..03c194596 100644
--- a/core/os/os_windows.odin
+++ b/core/os/os_windows.odin
@@ -194,7 +194,8 @@ current_thread_id :: proc "contextless" () -> int {
@(private, require_results)
-_alloc_command_line_arguments :: proc() -> []string {
+_alloc_command_line_arguments :: proc "contextless" () -> []string {
+ context = runtime.default_context()
arg_count: i32
arg_list_ptr := win32.CommandLineToArgvW(win32.GetCommandLineW(), &arg_count)
arg_list := make([]string, int(arg_count))
@@ -216,7 +217,8 @@ _alloc_command_line_arguments :: proc() -> []string {
}
@(private, fini)
-_delete_command_line_arguments :: proc() {
+_delete_command_line_arguments :: proc "contextless" () {
+ context = runtime.default_context()
for s in args {
delete(s)
}