shinrich commented on code in PR #11094: URL: https://github.com/apache/trafficserver/pull/11094#discussion_r1501199470
########## src/proxy/http2/Http2ConnectionState.cc: ########## @@ -2014,24 +2024,39 @@ Http2ConnectionState::update_initial_local_rwnd(Http2WindowSize new_size) } void -Http2ConnectionState::schedule_stream(Http2Stream *stream) +Http2ConnectionState::schedule_stream_to_send_priority_frames(Http2Stream *stream) { - Http2StreamDebug(session, stream->get_id(), "Scheduled"); + Http2StreamDebug(session, stream->get_id(), "Scheduling sending priority frames"); Http2DependencyTree::Node *node = stream->priority_node; ink_release_assert(node != nullptr); SCOPED_MUTEX_LOCK(lock, this->mutex, this_ethread()); dependency_tree->activate(node); - if (!_scheduled) { - _scheduled = true; + if (!_priority_scheduled) { + _priority_scheduled = true; SET_HANDLER(&Http2ConnectionState::main_event_handler); this_ethread()->schedule_imm_local((Continuation *)this, HTTP2_SESSION_EVENT_XMIT); } } +void +Http2ConnectionState::schedule_stream_to_send_data_frames(Http2Stream *stream) +{ + Http2StreamDebug(session, stream->get_id(), "Scheduling sending data frames"); + + SCOPED_MUTEX_LOCK(lock, this->mutex, this_ethread()); + + if (!_data_scheduled) { + _data_scheduled = true; + + SET_HANDLER(&Http2ConnectionState::main_event_handler); + this_ethread()->schedule_in((Continuation *)this, HRTIME_MSECOND, HTTP2_SESSION_EVENT_DATA); Review Comment: I don't think it matter that much. But your reasoning to leave a bit of time to drain seems sound. Since we failed the first time, this isn't going to be the fastest path anyway. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@trafficserver.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org