output/httpd: merge duplicate code to ClearQueue()

This commit is contained in:
Max Kellermann 2014-01-04 17:11:22 +01:00
parent 968c5eb767
commit f2ad9f6fad
2 changed files with 15 additions and 5 deletions

View File

@ -37,8 +37,7 @@ HttpdClient::~HttpdClient()
if (current_page != nullptr)
current_page->Unref();
for (auto page : pages)
page->Unref();
ClearQueue();
}
if (metadata)
@ -209,15 +208,23 @@ HttpdClient::HttpdClient(HttpdOutput &_httpd, int _fd, EventLoop &_loop,
}
void
HttpdClient::CancelQueue()
HttpdClient::ClearQueue()
{
if (state != RESPONSE)
return;
assert(state == RESPONSE);
for (auto page : pages)
page->Unref();
pages.clear();
queue_size = 0;
}
void
HttpdClient::CancelQueue()
{
if (state != RESPONSE)
return;
ClearQueue();
if (current_page == nullptr)
CancelWrite();

View File

@ -187,6 +187,9 @@ public:
*/
void PushMetaData(Page *page);
private:
void ClearQueue();
protected:
virtual bool OnSocketReady(unsigned flags) override;
virtual InputResult OnSocketInput(void *data, size_t length) override;