| 371 | } |
| 372 | |
| 373 | H2StreamContext* H2Context::RemoveStreamAndDeferWU(int stream_id) { |
| 374 | H2StreamContext* sctx = NULL; |
| 375 | { |
| 376 | std::unique_lock<butil::Mutex> mu(_stream_mutex); |
| 377 | if (!_pending_streams.erase(stream_id, &sctx)) { |
| 378 | return NULL; |
| 379 | } |
| 380 | } |
| 381 | // The remote stream will not send any more data, sending back the |
| 382 | // stream-level WINDOW_UPDATE is pointless, just move the value into |
| 383 | // the connection. |
| 384 | DeferWindowUpdate(sctx->ReleaseDeferredWindowUpdate()); |
| 385 | return sctx; |
| 386 | } |
| 387 | |
| 388 | void H2Context::RemoveGoAwayStreams( |
| 389 | int goaway_stream_id, std::vector<H2StreamContext*>* out_streams) { |
no test coverage detected