diff --git a/core/thread/thread_unix.odin b/core/thread/thread_unix.odin index ff79cfcbc..da5929d1d 100644 --- a/core/thread/thread_unix.odin +++ b/core/thread/thread_unix.odin @@ -27,8 +27,6 @@ _create :: proc(procedure: Thread_Proc, priority: Thread_Priority) -> ^Thread { // most of the time, don't ask me why. can_set_thread_cancel_state := posix.pthread_setcancelstate(.DISABLE when ODIN_OS == .Darwin else .ENABLE, nil) == nil - t.id = sync.current_thread_id() - if .Started not_in sync.atomic_load(&t.flags) { sync.wait(&t.start_ok) } @@ -125,6 +123,12 @@ _create :: proc(procedure: Thread_Proc, priority: Thread_Priority) -> ^Thread { return nil } + + when size_of(posix.pthread_t) == size_of(i64) { + thread.id = int((^i64)(&thread.unix_thread)^) + } else { + thread.id = int((^i32)(&thread.unix_thread)^) + } return thread }