From b83f99cf543d056c86ab942006f144a1de49672e Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Wed, 26 Aug 2015 14:52:54 -0700 Subject: [PATCH] Defer "language" preference update * This avoids DBPerformance log notices on GET requests Bug: T92357 Change-Id: I9e4bc3fab4cfe36ca820abe8eb46594adac66dc4 --- UniversalLanguageSelector.hooks.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/UniversalLanguageSelector.hooks.php b/UniversalLanguageSelector.hooks.php index 15f510b2..eb17de99 100644 --- a/UniversalLanguageSelector.hooks.php +++ b/UniversalLanguageSelector.hooks.php @@ -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