|
|
|
@ -531,6 +531,12 @@ static void destroy_transport(grpc_transport *gt) { |
|
|
|
|
drop_connection(t); |
|
|
|
|
unlock(t); |
|
|
|
|
|
|
|
|
|
/* The drop_connection() above puts the transport into an error state, and
|
|
|
|
|
the follow-up unlock should then (as part of the cleanup work it does) |
|
|
|
|
ensure that cb is NULL, and therefore not call back anything further. |
|
|
|
|
This check validates this very subtle behavior. |
|
|
|
|
It's shutdown path, so I don't believe an extra lock pair is going to be |
|
|
|
|
problematic for performance. */ |
|
|
|
|
lock(t); |
|
|
|
|
GPR_ASSERT(!t->cb); |
|
|
|
|
unlock(t); |
|
|
|
|