aboutsummaryrefslogtreecommitdiff
path: root/core/sync/sync_linux.odin
diff options
context:
space:
mode:
Diffstat (limited to 'core/sync/sync_linux.odin')
-rw-r--r--core/sync/sync_linux.odin36
1 files changed, 0 insertions, 36 deletions
diff --git a/core/sync/sync_linux.odin b/core/sync/sync_linux.odin
deleted file mode 100644
index 340437c11..000000000
--- a/core/sync/sync_linux.odin
+++ /dev/null
@@ -1,36 +0,0 @@
-package sync
-
-import "core:sys/unix"
-
-current_thread_id :: proc "contextless" () -> int {
- return unix.sys_gettid()
-}
-
-
-// The Darwin docs say it best:
-// A semaphore is much like a lock, except that a finite number of threads can hold it simultaneously.
-// Semaphores can be thought of as being much like piles of tokens; multiple threads can take these tokens,
-// but when there are none left, a thread must wait until another thread returns one.
-Semaphore :: struct #align 16 {
- handle: unix.sem_t,
-}
-
-semaphore_init :: proc(s: ^Semaphore, initial_count := 0) {
- assert(unix.sem_init(&s.handle, 0, u32(initial_count)) == 0)
-}
-
-semaphore_destroy :: proc(s: ^Semaphore) {
- assert(unix.sem_destroy(&s.handle) == 0)
- s.handle = {}
-}
-
-semaphore_post :: proc(s: ^Semaphore, count := 1) {
- // NOTE: SPEED: If there's one syscall to do this, we should use it instead of the loop.
- for in 0..<count {
- assert(unix.sem_post(&s.handle) == 0)
- }
-}
-
-semaphore_wait_for :: proc(s: ^Semaphore) {
- assert(unix.sem_wait(&s.handle) == 0)
-}