aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-09-15 13:46:12 -0700
committerGravatar Craig Tiller <ctiller@google.com>2017-09-15 13:46:12 -0700
commit149c4696e627db4ff226757fb3d6245154ec2926 (patch)
tree85003f84addd7e0b08e395f37fdc21fb499e6c73
parent31620ca54f2bd7a799d70d77abc29020e83a6798 (diff)
Fix pings racing initial settings
-rw-r--r--src/core/ext/transport/chttp2/transport/writing.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/core/ext/transport/chttp2/transport/writing.c b/src/core/ext/transport/chttp2/transport/writing.c
index c132195457..82f7df2724 100644
--- a/src/core/ext/transport/chttp2/transport/writing.c
+++ b/src/core/ext/transport/chttp2/transport/writing.c
@@ -160,12 +160,6 @@ grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
GPR_TIMER_BEGIN("grpc_chttp2_begin_write", 0);
- for (size_t i = 0; i < t->ping_ack_count; i++) {
- grpc_slice_buffer_add(&t->outbuf,
- grpc_chttp2_ping_create(1, t->ping_acks[i]));
- }
- t->ping_ack_count = 0;
-
if (t->dirtied_local_settings && !t->sent_local_settings) {
grpc_slice_buffer_add(
&t->outbuf,
@@ -178,6 +172,12 @@ grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
GRPC_STATS_INC_HTTP2_SETTINGS_WRITES(exec_ctx);
}
+ for (size_t i = 0; i < t->ping_ack_count; i++) {
+ grpc_slice_buffer_add(&t->outbuf,
+ grpc_chttp2_ping_create(1, t->ping_acks[i]));
+ }
+ t->ping_ack_count = 0;
+
/* simple writes are queued to qbuf, and flushed here */
grpc_slice_buffer_move_into(&t->qbuf, &t->outbuf);
GPR_ASSERT(t->qbuf.count == 0);