diff --git a/core/thread/thread_unix.odin b/core/thread/thread_unix.odin index f78d8f66f..cee278c7a 100644 --- a/core/thread/thread_unix.odin +++ b/core/thread/thread_unix.odin @@ -76,6 +76,9 @@ _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^ return nil } thread.creation_allocator = context.allocator + + sync.mutex_init(&thread.start_mutex) + sync.condition_init(&thread.start_gate, &thread.start_mutex) // Set thread priority. policy: i32 @@ -96,12 +99,13 @@ _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^ if unix.pthread_create(&thread.unix_thread, &attrs, __linux_thread_entry_proc, thread) != 0 { free(thread, thread.creation_allocator) + + sync.condition_destroy(&thread.start_gate) + sync.mutex_destroy(&thread.start_mutex) return nil } thread.procedure = procedure - sync.mutex_init(&thread.start_mutex) - sync.condition_init(&thread.start_gate, &thread.start_mutex) return thread } diff --git a/vendor/glfw/bindings/bindings.odin b/vendor/glfw/bindings/bindings.odin index e65e9b2fc..90d5a0f9e 100644 --- a/vendor/glfw/bindings/bindings.odin +++ b/vendor/glfw/bindings/bindings.odin @@ -46,7 +46,7 @@ foreign glfw { WindowHint :: proc(hint, value: c.int) --- DefaultWindowHints :: proc() --- WindowHintString :: proc(hint: c.int, value: cstring) --- - WindowShouldClose :: proc(window: WindowHandle) -> c.int --- + WindowShouldClose :: proc(window: WindowHandle) -> b32 --- SwapInterval :: proc(interval: c.int) --- SwapBuffers :: proc(window: WindowHandle) --- diff --git a/vendor/glfw/wrapper.odin b/vendor/glfw/wrapper.odin index 2eed82efe..2c09731ca 100644 --- a/vendor/glfw/wrapper.odin +++ b/vendor/glfw/wrapper.odin @@ -228,4 +228,4 @@ SetErrorCallback :: glfw.SetErrorCallback // Used by vendor:OpenGL gl_set_proc_address :: proc(p: rawptr, name: cstring) { (^rawptr)(p)^ = GetProcAddress(name) -} \ No newline at end of file +}