From 6aeb5657333d5c32ed804c071e850b14bf273e32 Mon Sep 17 00:00:00 2001 From: Tyler Anthony Romeo Date: Thu, 21 Nov 2013 18:05:00 -0500 Subject: [PATCH] Add fastcgi_finish_request where appropriate When using PHP-FPM to run PHP on a web server, the function fastcgi_finish_request is provided, which flushes all response data to the client and closes the connection, allowing PHP to perform additional work without delaying the client. This adds fastcgi_finish_request calls in index.php and api.php where appropriate and if the function exists, so that the connection is closed once the output is definitely finished. Change-Id: Ic67a8956545874e94df5198088c0f4aa58ca376e --- api.php | 5 +++++ includes/Wiki.php | 3 +++ 2 files changed, 8 insertions(+) diff --git a/api.php b/api.php index 8fab878cfa..5e23585913 100644 --- a/api.php +++ b/api.php @@ -72,12 +72,17 @@ $processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI ); // Process data & print results $processor->execute(); +if ( function_exists( 'fastcgi_finish_request' ) ) { + fastcgi_finish_request(); +} + // Execute any deferred updates DeferredUpdates::doUpdates(); // Log what the user did, for book-keeping purposes. $endtime = microtime( true ); wfProfileOut( 'api.php' ); + wfLogProfilingData(); // Log the request diff --git a/includes/Wiki.php b/includes/Wiki.php index 50bba7b9fc..c809339ebf 100644 --- a/includes/Wiki.php +++ b/includes/Wiki.php @@ -458,6 +458,9 @@ class MediaWiki { try { $this->checkMaxLag(); $this->main(); + if ( function_exists( 'fastcgi_finish_request' ) ) { + fastcgi_finish_request(); + } $this->restInPeace(); } catch ( Exception $e ) { MWExceptionHandler::handle( $e ); -- 2.20.1