GRPC Core
9.0.0
src
core
lib
gpr
tls_pthread.h
Go to the documentation of this file.
1
/*
2
*
3
* Copyright 2015 gRPC authors.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*/
18
19
#ifndef GRPC_CORE_LIB_GPR_TLS_PTHREAD_H
20
#define GRPC_CORE_LIB_GPR_TLS_PTHREAD_H
21
22
#include <
grpc/support/port_platform.h
>
23
24
#include <
grpc/support/log.h
>
/* for GPR_ASSERT */
25
#include <pthread.h>
26
30
struct
gpr_pthread_thread_local
{
31
pthread_key_t
key
;
32
};
33
35
#define GPR_TLS_DECL(name) static struct gpr_pthread_thread_local name = {0}
36
39
#define GPR_TLS_CLASS_DECL(name) static struct gpr_pthread_thread_local name
40
43
#define GPR_TLS_CLASS_DEF(name) struct gpr_pthread_thread_local name = {0}
44
45
#define gpr_tls_init(tls) GPR_ASSERT(0 == pthread_key_create(&(tls)->key, NULL))
46
#define gpr_tls_destroy(tls) pthread_key_delete((tls)->key)
47
#define gpr_tls_get(tls) ((intptr_t)pthread_getspecific((tls)->key))
48
#ifdef __cplusplus
49
extern
"C"
{
50
#endif
51
intptr_t
gpr_tls_set
(
struct
gpr_pthread_thread_local
* tls, intptr_t value);
52
#ifdef __cplusplus
53
}
54
#endif
55
56
#endif
/* GRPC_CORE_LIB_GPR_TLS_PTHREAD_H */
gpr_pthread_thread_local::key
pthread_key_t key
Definition:
tls_pthread.h:31
log.h
gpr_tls_set
intptr_t gpr_tls_set(struct gpr_pthread_thread_local *tls, intptr_t value)
gpr_pthread_thread_local
Thread local storage based on pthread library calls.
Definition:
tls_pthread.h:30
port_platform.h
Generated on Wed Sep 13 2023 00:00:00 for GRPC Core by
1.8.20