mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 01:21:38 -07:00
36 lines
607 B
Odin
36 lines
607 B
Odin
package odin_libc
|
|
|
|
import "core:time"
|
|
import "core:thread"
|
|
|
|
Clock :: enum i32 {
|
|
Monotonic = 1,
|
|
}
|
|
|
|
Time_Spec :: struct {
|
|
tv_sec: i64,
|
|
tv_nsec: i64,
|
|
}
|
|
|
|
@(require, linkage="strong", link_name="clock_gettime")
|
|
clock_gettine :: proc "c" (clockid: Clock, tp: ^Time_Spec) -> i32 {
|
|
switch clockid {
|
|
case .Monotonic:
|
|
tick := time.tick_now()
|
|
tp.tv_sec = tick._nsec/1e9
|
|
tp.tv_nsec = tick._nsec%1e9/1000
|
|
return 0
|
|
|
|
case: return -1
|
|
}
|
|
}
|
|
|
|
@(require, linkage="strong", link_name="sched_yield")
|
|
sched_yield :: proc "c" () -> i32 {
|
|
when thread.IS_SUPPORTED {
|
|
context = g_ctx
|
|
thread.yield()
|
|
}
|
|
return 0
|
|
}
|