in src/Session.cs [575:607]
void OnFlow(Flow flow)
{
Delivery delivery = null;
lock (this.ThisLock)
{
this.outgoingWindow = (uint)((flow.NextIncomingId + flow.IncomingWindow) - this.nextOutgoingId);
if (this.outgoingWindow > 0 && !this.writingDelivery)
{
delivery = (Delivery)this.outgoingList.First;
while (delivery != null)
{
if (delivery.Buffer != null && delivery.Buffer.Length > 0)
{
delivery.InProgress = true;
this.writingDelivery = true;
break;
}
delivery = (Delivery)delivery.Next;
}
}
}
if (delivery != null)
{
this.WriteDelivery(delivery);
}
if (flow.HasHandle)
{
this.GetLink(flow.Handle).OnFlow(flow);
}
}