blob: d3fd9dab33317cfed7f7a38e6921fe459d29875d [file] [log] [blame]
Don Newton98fd8812019-09-23 15:15:02 -04001// +build !linux appengine
2
3/*
4 *
5 * Copyright 2018 gRPC authors.
6 *
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
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
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.
18 *
19 */
20
21package syscall
22
23import (
24 "net"
25 "sync"
26 "time"
27
28 "google.golang.org/grpc/grpclog"
29)
30
31var once sync.Once
32
33func log() {
34 once.Do(func() {
35 grpclog.Info("CPU time info is unavailable on non-linux or appengine environment.")
36 })
37}
38
39// GetCPUTime returns the how much CPU time has passed since the start of this process.
40// It always returns 0 under non-linux or appengine environment.
41func GetCPUTime() int64 {
42 log()
43 return 0
44}
45
46// Rusage is an empty struct under non-linux or appengine environment.
47type Rusage struct{}
48
49// GetRusage is a no-op function under non-linux or appengine environment.
50func GetRusage() (rusage *Rusage) {
51 log()
52 return nil
53}
54
55// CPUTimeDiff returns the differences of user CPU time and system CPU time used
56// between two Rusage structs. It a no-op function for non-linux or appengine environment.
57func CPUTimeDiff(first *Rusage, latest *Rusage) (float64, float64) {
58 log()
59 return 0, 0
60}
61
62// SetTCPUserTimeout is a no-op function under non-linux or appengine environments
63func SetTCPUserTimeout(conn net.Conn, timeout time.Duration) error {
64 log()
65 return nil
66}
67
68// GetTCPUserTimeout is a no-op function under non-linux or appengine environments
69// a negative return value indicates the operation is not supported
70func GetTCPUserTimeout(conn net.Conn) (int, error) {
71 log()
72 return -1, nil
73}