mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-29 09:43:56 +00:00
wasi: make the demo run on wasi and run it in CI
This commit is contained in:
@@ -6,6 +6,8 @@ import "base:intrinsics"
|
||||
|
||||
_ :: intrinsics
|
||||
|
||||
IS_SUPPORTED :: _IS_SUPPORTED
|
||||
|
||||
Thread_Proc :: #type proc(^Thread)
|
||||
|
||||
MAX_USER_ARGUMENTS :: 8
|
||||
@@ -58,7 +60,9 @@ Thread :: struct {
|
||||
creation_allocator: mem.Allocator,
|
||||
}
|
||||
|
||||
#assert(size_of(Thread{}.user_index) == size_of(uintptr))
|
||||
when IS_SUPPORTED {
|
||||
#assert(size_of(Thread{}.user_index) == size_of(uintptr))
|
||||
}
|
||||
|
||||
Thread_Priority :: enum {
|
||||
Normal,
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
//+build js
|
||||
package thread
|
||||
|
||||
import "base:intrinsics"
|
||||
import "core:sync"
|
||||
import "core:mem"
|
||||
|
||||
Thread_Os_Specific :: struct {}
|
||||
|
||||
_thread_priority_map := [Thread_Priority]i32{
|
||||
.Normal = 0,
|
||||
.Low = -2,
|
||||
.High = +2,
|
||||
}
|
||||
|
||||
_create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^Thread {
|
||||
unimplemented("core:thread procedure not supported on js target")
|
||||
}
|
||||
|
||||
_start :: proc(t: ^Thread) {
|
||||
unimplemented("core:thread procedure not supported on js target")
|
||||
}
|
||||
|
||||
_is_done :: proc(t: ^Thread) -> bool {
|
||||
unimplemented("core:thread procedure not supported on js target")
|
||||
}
|
||||
|
||||
_join :: proc(t: ^Thread) {
|
||||
unimplemented("core:thread procedure not supported on js target")
|
||||
}
|
||||
|
||||
_join_multiple :: proc(threads: ..^Thread) {
|
||||
unimplemented("core:thread procedure not supported on js target")
|
||||
}
|
||||
|
||||
_destroy :: proc(thread: ^Thread) {
|
||||
unimplemented("core:thread procedure not supported on js target")
|
||||
}
|
||||
|
||||
_terminate :: proc(using thread : ^Thread, exit_code: int) {
|
||||
unimplemented("core:thread procedure not supported on js target")
|
||||
}
|
||||
|
||||
_yield :: proc() {
|
||||
unimplemented("core:thread procedure not supported on js target")
|
||||
}
|
||||
|
||||
47
core/thread/thread_other.odin
Normal file
47
core/thread/thread_other.odin
Normal file
@@ -0,0 +1,47 @@
|
||||
//+build js, wasi, orca
|
||||
package thread
|
||||
|
||||
import "base:intrinsics"
|
||||
|
||||
_IS_SUPPORTED :: false
|
||||
|
||||
Thread_Os_Specific :: struct {}
|
||||
|
||||
_thread_priority_map := [Thread_Priority]i32{
|
||||
.Normal = 0,
|
||||
.Low = -2,
|
||||
.High = +2,
|
||||
}
|
||||
|
||||
_create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^Thread {
|
||||
unimplemented("core:thread procedure not supported on target")
|
||||
}
|
||||
|
||||
_start :: proc(t: ^Thread) {
|
||||
unimplemented("core:thread procedure not supported on target")
|
||||
}
|
||||
|
||||
_is_done :: proc(t: ^Thread) -> bool {
|
||||
unimplemented("core:thread procedure not supported on target")
|
||||
}
|
||||
|
||||
_join :: proc(t: ^Thread) {
|
||||
unimplemented("core:thread procedure not supported on target")
|
||||
}
|
||||
|
||||
_join_multiple :: proc(threads: ..^Thread) {
|
||||
unimplemented("core:thread procedure not supported on target")
|
||||
}
|
||||
|
||||
_destroy :: proc(thread: ^Thread) {
|
||||
unimplemented("core:thread procedure not supported on target")
|
||||
}
|
||||
|
||||
_terminate :: proc(using thread : ^Thread, exit_code: int) {
|
||||
unimplemented("core:thread procedure not supported on target")
|
||||
}
|
||||
|
||||
_yield :: proc() {
|
||||
unimplemented("core:thread procedure not supported on target")
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ import "core:sync"
|
||||
import "core:sys/unix"
|
||||
import "core:time"
|
||||
|
||||
_IS_SUPPORTED :: true
|
||||
|
||||
CAS :: sync.atomic_compare_exchange_strong
|
||||
|
||||
// NOTE(tetra): Aligned here because of core/unix/pthread_linux.odin/pthread_t.
|
||||
|
||||
@@ -6,6 +6,8 @@ import "base:intrinsics"
|
||||
import "core:sync"
|
||||
import win32 "core:sys/windows"
|
||||
|
||||
_IS_SUPPORTED :: true
|
||||
|
||||
Thread_Os_Specific :: struct {
|
||||
win32_thread: win32.HANDLE,
|
||||
win32_thread_id: win32.DWORD,
|
||||
|
||||
Reference in New Issue
Block a user