1
// +build !linux appengine
5
* Copyright 2018 gRPC authors.
7
* Licensed under the Apache License, Version 2.0 (the "License");
8
* you may not use this file except in compliance with the License.
9
* You may obtain a copy of the License at
11
* http://www.apache.org/licenses/LICENSE-2.0
13
* Unless required by applicable law or agreed to in writing, software
14
* distributed under the License is distributed on an "AS IS" BASIS,
15
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
* See the License for the specific language governing permissions and
17
* limitations under the License.
21
// Package syscall provides functionalities that grpc uses to get low-level
22
// operating system stats/info.
30
"google.golang.org/grpc/grpclog"
34
var logger = grpclog.Component("core")
38
logger.Info("CPU time info is unavailable on non-linux or appengine environment.")
42
// GetCPUTime returns the how much CPU time has passed since the start of this process.
43
// It always returns 0 under non-linux or appengine environment.
44
func GetCPUTime() int64 {
49
// Rusage is an empty struct under non-linux or appengine environment.
52
// GetRusage is a no-op function under non-linux or appengine environment.
53
func GetRusage() *Rusage {
58
// CPUTimeDiff returns the differences of user CPU time and system CPU time used
59
// between two Rusage structs. It a no-op function for non-linux or appengine environment.
60
func CPUTimeDiff(first *Rusage, latest *Rusage) (float64, float64) {
65
// SetTCPUserTimeout is a no-op function under non-linux or appengine environments
66
func SetTCPUserTimeout(conn net.Conn, timeout time.Duration) error {
71
// GetTCPUserTimeout is a no-op function under non-linux or appengine environments
72
// a negative return value indicates the operation is not supported
73
func GetTCPUserTimeout(conn net.Conn) (int, error) {