aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/surface/call.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/surface/call.c b/src/core/surface/call.c
index 7dd74d86b4..6f1cd1df10 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -1484,6 +1484,8 @@ uint8_t grpc_call_is_client(grpc_call *call) { return call->is_client; }
grpc_compression_algorithm grpc_call_compression_for_level(
grpc_call *call, grpc_compression_level level) {
- return grpc_compression_algorithm_for_level(level,
- call->encodings_accepted_by_peer);
+ gpr_mu_lock(&call->mu);
+ const uint32_t accepted_encodings = call->encodings_accepted_by_peer;
+ gpr_mu_unlock(&call->mu);
+ return grpc_compression_algorithm_for_level(level, accepted_encodings);
}