mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 01:21:38 -07:00
Update sys/unix; Rename thread.create_and_start
This commit is contained in:
@@ -78,3 +78,9 @@ PTHREAD_INHERIT_SCHED :: 1;
|
||||
PTHREAD_EXPLICIT_SCHED :: 2;
|
||||
PTHREAD_PROCESS_SHARED :: 1;
|
||||
PTHREAD_PROCESS_PRIVATE :: 2;
|
||||
|
||||
|
||||
PTHREAD_MUTEX_NORMAL :: 0;
|
||||
PTHREAD_MUTEX_RECURSIVE :: 1;
|
||||
PTHREAD_MUTEX_ERRORCHECK :: 2;
|
||||
|
||||
|
||||
@@ -62,6 +62,10 @@ pthread_barrierattr_t :: opaque struct #align 16 {
|
||||
_: [PTHREAD_BARRIERATTR_T_SIZE] c.char,
|
||||
};
|
||||
|
||||
PTHREAD_MUTEX_NORMAL :: 0;
|
||||
PTHREAD_MUTEX_RECURSIVE :: 1;
|
||||
PTHREAD_MUTEX_ERRORCHECK :: 2;
|
||||
|
||||
|
||||
// TODO(tetra, 2019-11-01): Maybe make `enum c.int`s for these?
|
||||
PTHREAD_CREATE_JOINABLE :: 0;
|
||||
|
||||
@@ -53,7 +53,7 @@ foreign pthread {
|
||||
pthread_attr_getstack :: proc(attrs: ^pthread_attr_t, stack_ptr: ^rawptr, stack_size: ^u64) -> c.int ---;
|
||||
|
||||
sched_yield :: proc() -> c.int ---;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@(default_calling_convention="c")
|
||||
@@ -101,6 +101,7 @@ foreign pthread {
|
||||
|
||||
pthread_mutexattr_init :: proc(attrs: ^pthread_mutexattr_t) -> c.int ---;
|
||||
pthread_mutexattr_destroy :: proc(attrs: ^pthread_mutexattr_t) -> c.int ---;
|
||||
pthread_mutexattr_settype :: proc(attrs: ^pthread_mutexattr_t, type: c.int) -> c.int ---;
|
||||
|
||||
// p-shared = "process-shared" - i.e: is this mutex shared among multiple processes?
|
||||
// values: PTHREAD_PROCESS_PRIVATE, PTHREAD_PROCESS_SHARED
|
||||
|
||||
@@ -44,8 +44,9 @@ run_with_data :: proc(fn: proc(data: rawptr), data: rawptr, init_context: Maybe(
|
||||
}
|
||||
|
||||
|
||||
run_with_thread_proc :: proc(fn: Thread_Proc, init_context: Maybe(runtime.Context) = nil, priority := Thread_Priority.Normal) {
|
||||
create_and_start :: proc(fn: Thread_Proc, init_context: Maybe(runtime.Context) = nil, priority := Thread_Priority.Normal) -> ^Thread {
|
||||
t := create(fn, priority);
|
||||
t.init_context = init_context;
|
||||
start(t);
|
||||
return t;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user