Defer "language" preference update

* This avoids DBPerformance log notices on GET requests

Bug: T92357
Change-Id: I9e4bc3fab4cfe36ca820abe8eb46594adac66dc4
This commit is contained in:
Aaron Schulz
2015-08-26 14:52:54 -07:00
committed by Krinkle
parent 1c6472f794
commit b83f99cf54

View File

@@ -206,10 +206,13 @@ class UniversalLanguageSelectorHooks {
if ( !$user->isAnon() ) {
// Language change
if ( Language::isSupportedLanguage( $languageToSave ) ) {
$user->setOption( 'language', $languageToSave );
$user->saveSettings();
// Apply immediately
$user->setOption( 'language', $languageToSave );
$code = $languageToSave;
// Promise to sync the DB on post-send
DeferredUpdates::addCallableUpdate( function() use ( $user ) {
$user->saveSettings();
} );
}
// Otherwise just use what is stored in preferences