Main Page
+
Namespaces
Namespace List
+
Namespace Members
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
+
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
+
Variables
c
d
e
f
g
i
k
l
m
n
o
r
s
t
z
+
Typedefs
a
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
w
y
z
Enumerations
+
Enumerator
k
l
p
s
+
Classes
Class List
Class Hierarchy
+
Class Members
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
~
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
z
+
Typedefs
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
Enumerations
+
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
x
z
+
Related Functions
a
b
c
e
f
h
i
m
o
p
r
s
t
u
v
w
+
Files
File List
+
File Members
+
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
x
+
Functions
_
a
c
g
m
n
r
s
t
v
+
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
v
Typedefs
Enumerations
Enumerator
+
Macros
_
a
c
d
e
f
g
h
i
l
n
p
r
s
t
u
x
abseil_cpp
absl
base
internal
sysinfo.h
Go to the documentation of this file.
1
// Copyright 2017 The Abseil Authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
//
15
// This file includes routines to find out characteristics
16
// of the machine a program is running on. It is undoubtedly
17
// system-dependent.
18
19
// Functions listed here that accept a pid_t as an argument act on the
20
// current process if the pid_t argument is 0
21
// All functions here are thread-hostile due to file caching unless
22
// commented otherwise.
23
24
#ifndef ABSL_BASE_INTERNAL_SYSINFO_H_
25
#define ABSL_BASE_INTERNAL_SYSINFO_H_
26
27
#ifndef _WIN32
28
#include <sys/types.h>
29
#else
30
#include <intsafe.h>
31
#endif
32
33
#include "
absl/base/port.h
"
34
35
namespace
absl
{
36
namespace
base_internal {
37
38
// Nominal core processor cycles per second of each processor. This is _not_
39
// necessarily the frequency of the CycleClock counter (see cycleclock.h)
40
// Thread-safe.
41
double
NominalCPUFrequency
();
42
43
// Number of logical processors (hyperthreads) in system. Thread-safe.
44
int
NumCPUs
();
45
46
// Return the thread id of the current thread, as told by the system.
47
// No two currently-live threads implemented by the OS shall have the same ID.
48
// Thread ids of exited threads may be reused. Multiple user-level threads
49
// may have the same thread ID if multiplexed on the same OS thread.
50
//
51
// On Linux, you may send a signal to the resulting ID with kill(). However,
52
// it is recommended for portability that you use pthread_kill() instead.
53
#ifdef _WIN32
54
// On Windows, process id and thread id are of the same type according to
55
// the return types of GetProcessId() and GetThreadId() are both DWORD.
56
using
pid_t = DWORD;
57
#endif
58
pid_t
GetTID
();
59
60
}
// namespace base_internal
61
}
// namespace absl
62
63
#endif // ABSL_BASE_INTERNAL_SYSINFO_H_
absl::base_internal::GetTID
pid_t GetTID()
Definition:
sysinfo.cc:363
absl::base_internal::NumCPUs
int NumCPUs()
Definition:
sysinfo.cc:267
absl::base_internal::NominalCPUFrequency
double NominalCPUFrequency()
Definition:
sysinfo.cc:272
absl
Definition:
algorithm.h:29
port.h
abseil_cpp
Author(s):
autogenerated on Mon Feb 28 2022 21:31:20