aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@users.noreply.github.com>2018-04-05 09:09:33 +0200
committerGravatar GitHub <noreply@github.com>2018-04-05 09:09:33 +0200
commit2872cf00cf05dc3b90afa4f4a4dc73064bb41fb9 (patch)
tree575c71e425c1b0a6d3db3144b7de07a42fbbb859 /src
parent7932d62f031409d9c77bca1caea34d5519df5ecf (diff)
parent1a956bcd3274fb9135d63101b803c00015f3f2af (diff)
Merge pull request #14877 from ara-ayvazyan/fix_missing_mu_destroy
Fix missing mutex destruction in C++
Diffstat (limited to 'src')
-rw-r--r--src/core/lib/iomgr/tcp_server_windows.cc1
-rw-r--r--src/core/lib/iomgr/timer_generic.cc10
2 files changed, 11 insertions, 0 deletions
diff --git a/src/core/lib/iomgr/tcp_server_windows.cc b/src/core/lib/iomgr/tcp_server_windows.cc
index 77f3811dca..b01afdcc9d 100644
--- a/src/core/lib/iomgr/tcp_server_windows.cc
+++ b/src/core/lib/iomgr/tcp_server_windows.cc
@@ -129,6 +129,7 @@ static void destroy_server(void* arg, grpc_error* error) {
gpr_free(sp);
}
grpc_channel_args_destroy(s->channel_args);
+ gpr_mu_destroy(&s->mu);
gpr_free(s);
}
diff --git a/src/core/lib/iomgr/timer_generic.cc b/src/core/lib/iomgr/timer_generic.cc
index 93e654b7fa..0c6f236f83 100644
--- a/src/core/lib/iomgr/timer_generic.cc
+++ b/src/core/lib/iomgr/timer_generic.cc
@@ -97,6 +97,12 @@ static void init_timer_ht() {
}
}
+static void destroy_timer_ht() {
+ for (int i = 0; i < NUM_HASH_BUCKETS; i++) {
+ gpr_mu_destroy(&g_hash_mu[i]);
+ }
+}
+
static bool is_in_ht(grpc_timer* t) {
size_t i = GPR_HASH_POINTER(t, NUM_HASH_BUCKETS);
@@ -188,6 +194,7 @@ static void validate_non_pending_timer(grpc_timer* t) {
}
#define INIT_TIMER_HASH_TABLE() init_timer_ht()
+#define DESTROY_TIMER_HASH_TABLE() destroy_timer_ht()
#define ADD_TO_HASH_TABLE(t) add_to_ht((t))
#define REMOVE_FROM_HASH_TABLE(t) remove_from_ht((t))
#define VALIDATE_NON_PENDING_TIMER(t) validate_non_pending_timer((t))
@@ -195,6 +202,7 @@ static void validate_non_pending_timer(grpc_timer* t) {
#else
#define INIT_TIMER_HASH_TABLE()
+#define DESTROY_TIMER_HASH_TABLE()
#define ADD_TO_HASH_TABLE(t)
#define REMOVE_FROM_HASH_TABLE(t)
#define VALIDATE_NON_PENDING_TIMER(t)
@@ -283,6 +291,8 @@ static void timer_list_shutdown() {
gpr_free(g_shards);
gpr_free(g_shard_queue);
g_shared_mutables.initialized = false;
+
+ DESTROY_TIMER_HASH_TABLE();
}
/* returns true if the first element in the list */