
This function previously returned the atomic time, that isn't affected by system time changes but also has a time base at some arbitrary time in the past. This makes sense for baremetal platforms (which typically don't know the wall time) but it gives surprising results on Linux and macOS: time.Now() usually returns a time somewhere near the start of 1970. This commit fixes this by obtaining both time values: the monotonic time and the wall clock time. This is also how the Go runtime implements the time.now function.
19 строки
426 Б
Go
19 строки
426 Б
Go
// +build darwin
|
|
|
|
package runtime
|
|
|
|
const GOOS = "darwin"
|
|
|
|
const (
|
|
// See https://github.com/golang/go/blob/master/src/syscall/zerrors_darwin_amd64.go
|
|
flag_PROT_READ = 0x1
|
|
flag_PROT_WRITE = 0x2
|
|
flag_MAP_PRIVATE = 0x2
|
|
flag_MAP_ANONYMOUS = 0x1000 // MAP_ANON
|
|
)
|
|
|
|
// Source: https://opensource.apple.com/source/Libc/Libc-1439.100.3/include/time.h.auto.html
|
|
const (
|
|
clock_REALTIME = 0
|
|
clock_MONOTONIC_RAW = 4
|
|
)
|