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