Skip to content
Snippets Groups Projects
Commit a77d3f64 authored by Craig Tiller's avatar Craig Tiller
Browse files

Merge pull request #1394 from yang-g/bugfix

Fix flow control issue
parents 87344c88 4db2954d
No related branches found
No related tags found
No related merge requests found
...@@ -611,17 +611,19 @@ static int init_stream(grpc_transport *gt, grpc_stream *gs, ...@@ -611,17 +611,19 @@ static int init_stream(grpc_transport *gt, grpc_stream *gs,
if (!server_data) { if (!server_data) {
lock(t); lock(t);
s->id = 0; s->id = 0;
s->outgoing_window = 0;
s->incoming_window = 0;
} else { } else {
/* already locked */ /* already locked */
s->id = (gpr_uint32)(gpr_uintptr)server_data; s->id = (gpr_uint32)(gpr_uintptr)server_data;
s->outgoing_window =
t->settings[PEER_SETTINGS][GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
s->incoming_window =
t->settings[SENT_SETTINGS][GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
t->incoming_stream = s; t->incoming_stream = s;
grpc_chttp2_stream_map_add(&t->stream_map, s->id, s); grpc_chttp2_stream_map_add(&t->stream_map, s->id, s);
} }
s->outgoing_window =
t->settings[PEER_SETTINGS][GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
s->incoming_window =
t->settings[SENT_SETTINGS][GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
s->incoming_deadline = gpr_inf_future; s->incoming_deadline = gpr_inf_future;
grpc_sopb_init(&s->writing_sopb); grpc_sopb_init(&s->writing_sopb);
grpc_sopb_init(&s->callback_sopb); grpc_sopb_init(&s->callback_sopb);
...@@ -1017,6 +1019,10 @@ static void maybe_start_some_streams(transport *t) { ...@@ -1017,6 +1019,10 @@ static void maybe_start_some_streams(transport *t) {
GPR_ASSERT(s->id == 0); GPR_ASSERT(s->id == 0);
s->id = t->next_stream_id; s->id = t->next_stream_id;
t->next_stream_id += 2; t->next_stream_id += 2;
s->outgoing_window =
t->settings[PEER_SETTINGS][GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
s->incoming_window =
t->settings[SENT_SETTINGS][GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
grpc_chttp2_stream_map_add(&t->stream_map, s->id, s); grpc_chttp2_stream_map_add(&t->stream_map, s->id, s);
stream_list_join(t, s, WRITABLE); stream_list_join(t, s, WRITABLE);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment