From 0db9032a8b9644e8b0d7710fc39e66ce9d4d11ea Mon Sep 17 00:00:00 2001 From: yang-g Date: Mon, 21 Dec 2015 13:38:56 -0800 Subject: remove stream from stalled_by_transport list before destroy it --- src/core/transport/chttp2/internal.h | 3 +++ src/core/transport/chttp2/stream_lists.c | 8 ++++++++ src/core/transport/chttp2_transport.c | 1 + 3 files changed, 12 insertions(+) diff --git a/src/core/transport/chttp2/internal.h b/src/core/transport/chttp2/internal.h index 4ad900378b..e54940098a 100644 --- a/src/core/transport/chttp2/internal.h +++ b/src/core/transport/chttp2/internal.h @@ -566,6 +566,9 @@ void grpc_chttp2_list_add_stalled_by_transport( int grpc_chttp2_list_pop_stalled_by_transport( grpc_chttp2_transport_global *transport_global, grpc_chttp2_stream_global **stream_global); +void grpc_chttp2_list_remove_stalled_by_transport( + grpc_chttp2_transport_global *transport_global, + grpc_chttp2_stream_global *stream_global); void grpc_chttp2_list_add_unannounced_incoming_window_available( grpc_chttp2_transport_global *transport_global, diff --git a/src/core/transport/chttp2/stream_lists.c b/src/core/transport/chttp2/stream_lists.c index 49f951d08b..273a513e2f 100644 --- a/src/core/transport/chttp2/stream_lists.c +++ b/src/core/transport/chttp2/stream_lists.c @@ -333,6 +333,14 @@ int grpc_chttp2_list_pop_stalled_by_transport( return r; } +void grpc_chttp2_list_remove_stalled_by_transport( + grpc_chttp2_transport_global *transport_global, + grpc_chttp2_stream_global *stream_global) { + stream_list_maybe_remove(TRANSPORT_FROM_GLOBAL(transport_global), + STREAM_FROM_GLOBAL(stream_global), + GRPC_CHTTP2_LIST_STALLED_BY_TRANSPORT); +} + void grpc_chttp2_list_add_closed_waiting_for_parsing( grpc_chttp2_transport_global *transport_global, grpc_chttp2_stream_global *stream_global) { diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 70f7eed4fe..2cd0185dfa 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -524,6 +524,7 @@ static void destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt, grpc_chttp2_list_remove_writable_stream(&t->global, &s->global); grpc_chttp2_list_remove_unannounced_incoming_window_available(&t->global, &s->global); + grpc_chttp2_list_remove_stalled_by_transport(&t->global, &s->global); gpr_mu_unlock(&t->mu); -- cgit v1.2.3 From 8950c0fc5196108c43733f94bf36bfab3a58c033 Mon Sep 17 00:00:00 2001 From: yang-g Date: Mon, 21 Dec 2015 14:07:06 -0800 Subject: regenerate projects --- .../window_overflow_bad_client_test.vcxproj | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/vsprojects/vcxproj/test/window_overflow_bad_client_test/window_overflow_bad_client_test.vcxproj b/vsprojects/vcxproj/test/window_overflow_bad_client_test/window_overflow_bad_client_test.vcxproj index 9622461988..51534fd33d 100644 --- a/vsprojects/vcxproj/test/window_overflow_bad_client_test/window_overflow_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/window_overflow_bad_client_test/window_overflow_bad_client_test.vcxproj @@ -21,6 +21,8 @@ {658D7F7F-9628-6545-743C-D949301DC5DC} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ @@ -66,8 +68,8 @@ window_overflow_bad_client_test static - Debug - Debug + Release + Release @@ -79,6 +81,7 @@ MultiThreadedDebug true None + false Console @@ -96,6 +99,7 @@ MultiThreadedDebug true None + false Console @@ -115,6 +119,7 @@ MultiThreaded true None + false Console @@ -136,6 +141,7 @@ MultiThreaded true None + false Console -- cgit v1.2.3