mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00: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_EXPLICIT_SCHED :: 2;
|
||||||
PTHREAD_PROCESS_SHARED :: 1;
|
PTHREAD_PROCESS_SHARED :: 1;
|
||||||
PTHREAD_PROCESS_PRIVATE :: 2;
|
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_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?
|
// TODO(tetra, 2019-11-01): Maybe make `enum c.int`s for these?
|
||||||
PTHREAD_CREATE_JOINABLE :: 0;
|
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 ---;
|
pthread_attr_getstack :: proc(attrs: ^pthread_attr_t, stack_ptr: ^rawptr, stack_size: ^u64) -> c.int ---;
|
||||||
|
|
||||||
sched_yield :: proc() -> c.int ---;
|
sched_yield :: proc() -> c.int ---;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@(default_calling_convention="c")
|
@(default_calling_convention="c")
|
||||||
@@ -101,6 +101,7 @@ foreign pthread {
|
|||||||
|
|
||||||
pthread_mutexattr_init :: proc(attrs: ^pthread_mutexattr_t) -> c.int ---;
|
pthread_mutexattr_init :: proc(attrs: ^pthread_mutexattr_t) -> c.int ---;
|
||||||
pthread_mutexattr_destroy :: 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?
|
// p-shared = "process-shared" - i.e: is this mutex shared among multiple processes?
|
||||||
// values: PTHREAD_PROCESS_PRIVATE, PTHREAD_PROCESS_SHARED
|
// 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 := create(fn, priority);
|
||||||
t.init_context = init_context;
|
t.init_context = init_context;
|
||||||
start(t);
|
start(t);
|
||||||
|
return t;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user