Experimental threads
Dependencies
import {
"mizchi/threads" @threads,
}
let t = @threads.threads_for_backend(@threads.backend_node_worker())
inspect(t.backend_kind, content="BackendNodeWorker")type SharedMemoryId = Intpub struct SharedStartArgDecoded {
memory_id : Int
local_arg : Int
}fn atomic_wait_i32(platform : MultithreadPlatform, addr : AtomicI32Ref, expect : Int, timeout_ns? : Int64, caller_context? : WaitCallerContext) -> Result[WaitResult, ThreadError]fn multithread_platform(backend_kind : ThreadBackendKind, thread : ThreadOps, atomics : AtomicOps, mutex : MutexOps, capabilities? : PlatformCapabilities) -> MultithreadPlatformfn platform_capabilities(supports_join? : Bool, supports_detach? : Bool, supports_wait_timeout? : Bool, supports_blocking_wait_on_main_thread? : Bool) -> PlatformCapabilitiesfn spawn_spec_registered(entry : RegisteredEntry, start_arg : Int, options? : SpawnOptions) -> SpawnSpecasync fn thread_join_async(platform : MultithreadPlatform, thread_id : Int, poll_interval_ms? : Int) -> Result[Int, ThreadError]async fn thread_join_portable(platform : MultithreadPlatform, thread_id : Int, poll_interval_ms? : Int) -> Result[Int, ThreadError]fn thread_ops(spawn : (SpawnSpec) -> Result[Int, ThreadError], join : (Int) -> Result[Int, ThreadError], try_join : (Int) -> Result[Int?, ThreadError], detach : (Int) -> Result[Unit, ThreadError], current_thread_id : () -> Int) -> ThreadOpsasync fn thread_spawn_join_portable(platform : MultithreadPlatform, spec : SpawnSpec, poll_interval_ms? : Int) -> Result[Int, ThreadError]async fn threads_join(threads : MultithreadPlatform, thread_id : Int, poll_interval_ms? : Int) -> Result[Int, ThreadError]fn threads_join_blocking(threads : MultithreadPlatform, thread_id : Int) -> Result[Int, ThreadError]fn threads_spawn(threads : MultithreadPlatform, entry_id : Int, start_arg : Int, options? : SpawnOptions) -> Result[Int, ThreadError]async fn threads_spawn_join(threads : MultithreadPlatform, entry_id : Int, start_arg : Int, options? : SpawnOptions, poll_interval_ms? : Int) -> Result[Int, ThreadError]fn threads_spawn_join_blocking(threads : MultithreadPlatform, entry_id : Int, start_arg : Int, options? : SpawnOptions) -> Result[Int, ThreadError]async fn threads_spawn_join_registered(threads : MultithreadPlatform, entry : RegisteredEntry, start_arg : Int, options? : SpawnOptions, poll_interval_ms? : Int) -> Result[Int, ThreadError]fn threads_spawn_join_registered_blocking(threads : MultithreadPlatform, entry : RegisteredEntry, start_arg : Int, options? : SpawnOptions) -> Result[Int, ThreadError]fn threads_spawn_registered(threads : MultithreadPlatform, entry : RegisteredEntry, start_arg : Int, options? : SpawnOptions) -> Result[Int, ThreadError]Experimental threads
Dependencies