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
This commit is contained in:
Tyler Anthony Romeo 2013-11-21 18:05:00 -05:00
parent 47c9b93008
commit 6aeb565733
2 changed files with 8 additions and 0 deletions

View file

@ -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

View file

@ -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 );