Use or_else in the core library when it makes sense

This commit is contained in:
gingerBill
2021-07-05 16:33:01 +01:00
parent 3b9ca8535f
commit 9b3a0251ca
5 changed files with 6 additions and 29 deletions
+2 -5
View File
@@ -57,11 +57,8 @@ link_error_delete :: proc(lerr: Maybe(Link_Error)) {
is_platform_error :: proc(ferr: Error) -> (err: i32, ok: bool) { is_platform_error :: proc(ferr: Error) -> (err: i32, ok: bool) {
v: Platform_Error; v := or_else(ferr.(Platform_Error), {});
if v, ok = ferr.(Platform_Error); ok { return v.err, v.err != 0;
err = v.err;
}
return;
} }
+1 -5
View File
@@ -13,11 +13,7 @@ error_to_io_error :: proc(ferr: Error) -> io.Error {
if ferr == nil { if ferr == nil {
return .None; return .None;
} }
err, ok := ferr.(io.Error); return or_else(ferr.(io.Error), .Unknown);
if !ok {
err = .Unknown;
}
return err;
} }
+1 -6
View File
@@ -68,12 +68,7 @@ Thread_Os_Specific :: struct {
thread_create :: proc(procedure: Thread_Proc) -> ^Thread { thread_create :: proc(procedure: Thread_Proc) -> ^Thread {
__windows_thread_entry_proc :: proc "stdcall" (t_: rawptr) -> win32.DWORD { __windows_thread_entry_proc :: proc "stdcall" (t_: rawptr) -> win32.DWORD {
t := (^Thread)(t_); t := (^Thread)(t_);
context = runtime.default_context(); context = or_else(t.init_context.?, runtime.default_context());
c := context;
if ic, ok := t.init_context.?; ok {
c = ic;
}
context = c;
t.procedure(t); t.procedure(t);
+1 -7
View File
@@ -38,8 +38,6 @@ Thread_Os_Specific :: struct #align 16 {
// //
_create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^Thread { _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^Thread {
__linux_thread_entry_proc :: proc "c" (t: rawptr) -> rawptr { __linux_thread_entry_proc :: proc "c" (t: rawptr) -> rawptr {
context = runtime.default_context();
t := (^Thread)(t); t := (^Thread)(t);
sync.condition_wait_for(&t.start_gate); sync.condition_wait_for(&t.start_gate);
sync.condition_destroy(&t.start_gate); sync.condition_destroy(&t.start_gate);
@@ -47,11 +45,7 @@ _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^
t.start_gate = {}; t.start_gate = {};
t.start_mutex = {}; t.start_mutex = {};
c := context; context = or_else(t.init_context.?, runtime.default_context());
if ic, ok := t.init_context.?; ok {
c = ic;
}
context = c;
t.procedure(t); t.procedure(t);
+1 -6
View File
@@ -23,12 +23,7 @@ _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^
__windows_thread_entry_proc :: proc "stdcall" (t_: rawptr) -> win32.DWORD { __windows_thread_entry_proc :: proc "stdcall" (t_: rawptr) -> win32.DWORD {
t := (^Thread)(t_); t := (^Thread)(t_);
context = runtime.default_context(); context = or_else(t.init_context.?, runtime.default_context());
c := context;
if ic, ok := t.init_context.?; ok {
c = ic;
}
context = c;
t.procedure(t); t.procedure(t);