30 lines
889 B
Go
30 lines
889 B
Go
// Copyright 2017 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Declarations for operating systems implementing time.now
|
|
// indirectly, in terms of walltime and nanotime assembly.
|
|
|
|
//go:build !faketime && !windows && !(linux && amd64)
|
|
|
|
package runtime
|
|
|
|
import _ "unsafe" // for go:linkname
|
|
|
|
// time_now should be an internal detail,
|
|
// but widely used packages access it using linkname.
|
|
// Notable members of the hall of shame include:
|
|
// - gitee.com/quant1x/gox
|
|
// - github.com/phuslu/log
|
|
// - github.com/sethvargo/go-limiter
|
|
// - github.com/ulule/limiter/v3
|
|
//
|
|
// Do not remove or change the type signature.
|
|
// See go.dev/issue/67401.
|
|
//
|
|
//go:linkname time_now time.now
|
|
func time_now() (sec int64, nsec int32, mono int64) {
|
|
sec, nsec = walltime()
|
|
return sec, nsec, nanotime()
|
|
}
|