github.com/wasilibs/wazerox@v0.0.0-20240124024944-4923be63ab5f/sys/clock.go (about) 1 package sys 2 3 // ClockResolution is a positive granularity of clock precision in 4 // nanoseconds. For example, if the resolution is 1us, this returns 1000. 5 // 6 // Note: Some implementations return arbitrary resolution because there's 7 // no perfect alternative. For example, according to the source in time.go, 8 // windows monotonic resolution can be 15ms. See /RATIONALE.md. 9 type ClockResolution uint32 10 11 // Walltime returns the current unix/epoch time, seconds since midnight UTC 12 // 1 January 1970, with a nanosecond fraction. 13 type Walltime func() (sec int64, nsec int32) 14 15 // Nanotime returns nanoseconds since an arbitrary start point, used to measure 16 // elapsed time. This is sometimes referred to as a tick or monotonic time. 17 // 18 // Note: There are no constraints on the value return except that it 19 // increments. For example, -1 is a valid if the next value is >= 0. 20 type Nanotime func() int64 21 22 // Nanosleep puts the current goroutine to sleep for at least ns nanoseconds. 23 type Nanosleep func(ns int64) 24 25 // Osyield yields the processor, typically to implement spin-wait loops. 26 type Osyield func()