internal void Flush(bool final_flush) { if (completed) { throw new HttpException("Server cannot flush a completed response"); } DoFilter(final_flush); if (!headers_sent) { if (final_flush || status_code != 200) { use_chunked = false; } } bool head = ((context != null) && (context.Request.HttpMethod == "HEAD")); if (suppress_content || head) { if (!headers_sent) { WriteHeaders(true); } output_stream.Clear(); if (WorkerRequest != null) { output_stream.Flush(WorkerRequest, true); // ignore final_flush here. } completed = true; return; } completed = final_flush; if (!headers_sent) { WriteHeaders(final_flush); } if (context != null) { HttpApplication app_instance = context.ApplicationInstance; if (app_instance != null) { app_instance.TriggerPreSendRequestContent(); } } if (IsCached) { cached_response.SetData(output_stream.GetData()); } if (WorkerRequest != null) { output_stream.Flush(WorkerRequest, final_flush); } }