From d165de0d4db0da4169487dec182492294fdf0936 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 26 Oct 2021 11:46:31 +0100 Subject: [PATCH] Move thread initialization variables in thread_unix.odin --- core/thread/thread_unix.odin | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 }