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