Support Inline StreamSends
@@ -1108,7 +1108,21 @@ MsQuicStreamSend(
goto Exit;
}
- if (QueueOper) {
+ if (!Connection->Settings.SendBufferingEnabled &&
+ Connection->WorkerThreadID == CxPlatCurThreadID()) {
+
+ CXPLAT_PASSIVE_CODE();
+
+ BOOLEAN AlreadyInline = Connection->State.InlineApiExecution;
+ if (!AlreadyInline) {
+ Connection->State.InlineApiExecution = TRUE;
+ }
+ QuicStreamSendFlush(Stream);
+ if (!AlreadyInline) {
+ Connection->State.InlineApiExecution = FALSE;
+ }
+
+ } else if (QueueOper) {
Oper = QuicOperationAlloc(Connection->Worker, QUIC_OPER_TYPE_API_CALL);
if (Oper == NULL) {
Status = QUIC_STATUS_OUT_OF_MEMORY;
