mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-10-14 12:59:41 -07:00
update threading API
This commit is contained in:
1 parent
362557e503
commit
4717701540
3 files changed
+14
-11
No files matched your search
@@ -99,7 +99,7 @@ tp_alloc(Arena *arena, U32 worker_count, U32 max_worker_count, String8 name)
|
||||
// launch worker threads
|
||||
for (U64 i = 1; i < worker_count; i += 1) {
|
||||
TP_Worker *worker = &pool->worker_arr[i];
|
||||
worker->handle = os_thread_launch(worker_entry, worker, 0);
|
||||
worker->handle = thread_launch(worker_entry, worker);
|
||||
}
|
||||
|
||||
ProfEnd();
|
||||
@@ -114,20 +114,20 @@ tp_release(TP_Context *pool)
|
||||
B32 is_shared = pool->exec_semaphore.u64[0] != 0;
|
||||
if (is_shared) {
|
||||
for (U64 i = 0; i < pool->worker_count; ++i) {
|
||||
os_semaphore_drop(pool->exec_semaphore);
|
||||
semaphore_drop(pool->exec_semaphore);
|
||||
}
|
||||
}
|
||||
for (U64 i = 0; i < pool->worker_count; ++i) {
|
||||
os_semaphore_drop(pool->task_semaphore);
|
||||
semaphore_drop(pool->task_semaphore);
|
||||
}
|
||||
for (U64 i = 1; i < pool->worker_count; i += 1) {
|
||||
os_thread_detach(pool->worker_arr[i].handle);
|
||||
thread_detach(pool->worker_arr[i].handle);
|
||||
}
|
||||
if (is_shared) {
|
||||
os_semaphore_release(pool->exec_semaphore);
|
||||
semaphore_release(pool->exec_semaphore);
|
||||
}
|
||||
os_semaphore_release(pool->task_semaphore);
|
||||
os_semaphore_release(pool->main_semaphore);
|
||||
semaphore_release(pool->task_semaphore);
|
||||
semaphore_release(pool->main_semaphore);
|
||||
|
||||
MemoryZeroStruct(pool);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ typedef struct TP_Worker
|
||||
{
|
||||
U64 id;
|
||||
struct TP_Context *pool;
|
||||
OS_Handle handle;
|
||||
Thread handle;
|
||||
} TP_Worker;
|
||||
|
||||
typedef struct TP_Context
|
||||
|
||||
Reference in new issue
Block a user