GRPC Core
10.0.0
include
grpc
impl
codegen
sync_posix.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_IMPL_CODEGEN_SYNC_POSIX_H
20
#define GRPC_IMPL_CODEGEN_SYNC_POSIX_H
21
22
#include <
grpc/impl/codegen/port_platform.h
>
23
24
#include <
grpc/impl/codegen/sync_generic.h
>
25
26
#include <pthread.h>
27
28
#ifdef GRPC_ASAN_ENABLED
29
/* The member |leak_checker| is used to check whether there is a memory leak
30
* caused by upper layer logic that's missing the |gpr_xx_destroy| call
31
* to the object before freeing it.
32
* This issue was reported at https://github.com/grpc/grpc/issues/17563
33
* and discussed at https://github.com/grpc/grpc/pull/17586
34
*/
35
typedef
struct
{
36
pthread_mutex_t mutex;
37
int
* leak_checker;
38
}
gpr_mu
;
39
40
typedef
struct
{
41
pthread_cond_t cond_var;
42
int
* leak_checker;
43
}
gpr_cv
;
44
#else
45
typedef
pthread_mutex_t
gpr_mu
;
46
typedef
pthread_cond_t
gpr_cv
;
47
#endif
48
typedef
pthread_once_t
gpr_once
;
49
50
#define GPR_ONCE_INIT PTHREAD_ONCE_INIT
51
52
#endif
/* GRPC_IMPL_CODEGEN_SYNC_POSIX_H */
gpr_once
pthread_once_t gpr_once
Definition:
sync_posix.h:48
gpr_cv
pthread_cond_t gpr_cv
Definition:
sync_posix.h:46
gpr_mu
pthread_mutex_t gpr_mu
Definition:
sync_posix.h:45
port_platform.h
sync_generic.h
Generated on Tue Jun 30 2020 18:16:56 for GRPC Core by
1.8.16