diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2025-06-12 16:00:24 +0200 |
|---|---|---|
| committer | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2025-06-12 16:00:24 +0200 |
| commit | caf41aa046b58d5cf07b438b859c9465bf3258ea (patch) | |
| tree | 1ce72310ca661b7709c42f8a30533ef5291dcefa /core/thread | |
| parent | ac5f3746cfe8f3da2f166d52828ee7c002429efa (diff) | |
Fix #5321
Diffstat (limited to 'core/thread')
| -rw-r--r-- | core/thread/thread_unix.odin | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/core/thread/thread_unix.odin b/core/thread/thread_unix.odin index ff79cfcbc..41b168407 100644 --- a/core/thread/thread_unix.odin +++ b/core/thread/thread_unix.odin @@ -3,6 +3,7 @@ package thread import "base:runtime" +import "core:c" import "core:sync" import "core:sys/posix" @@ -27,8 +28,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 +124,12 @@ _create :: proc(procedure: Thread_Proc, priority: Thread_Priority) -> ^Thread { return nil } + + when size_of(posix.pthread_t) == size_of(i64) { + thread.id = int(transmute(i64)thread.unix_thread) + } else { + thread.id = int(transmute(i32)thread.unix_thread) + } return thread } |