aboutsummaryrefslogtreecommitdiff
path: root/core/thread
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2025-06-12 16:00:24 +0200
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2025-06-12 16:00:24 +0200
commitcaf41aa046b58d5cf07b438b859c9465bf3258ea (patch)
tree1ce72310ca661b7709c42f8a30533ef5291dcefa /core/thread
parentac5f3746cfe8f3da2f166d52828ee7c002429efa (diff)
Fix #5321
Diffstat (limited to 'core/thread')
-rw-r--r--core/thread/thread_unix.odin9
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
}