Make WordPress Core

Ticket #31245: fabian-race-fix.diff

File fabian-race-fix.diff, 1.3 KB (added by fabifott, 7 years ago)

Force a cache update

  • wp-includes/option.php

    a b  
    173173 * @since 2.2.0
    174174 *
    175175 * @global wpdb $wpdb WordPress database abstraction object.
    176176 *
    177177 * @return array List of all options.
    178178 */
    179 function wp_load_alloptions() {
     179function wp_load_alloptions($force_cache = false) {
    180180        global $wpdb;
    181181
    182182        if ( wp_using_ext_object_cache() && (! wp_installing() || ! is_multisite() ) )
    183                 $alloptions = wp_cache_get( 'alloptions', 'options' );
     183                $alloptions = wp_cache_get( 'alloptions', 'options', $force_cache );
    184184        else
    185185                $alloptions = false;
    186186
    187187        if ( !$alloptions ) {
    188188                $suppress = $wpdb->suppress_errors();
    189189                if ( !$alloptions_db = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE autoload = 'yes'" ) )
     
    347347        if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
    348348                unset( $notoptions[$option] );
    349349                wp_cache_set( 'notoptions', $notoptions, 'options' );
    350350        }
    351351
    352352        if ( ! wp_installing() ) {
    353                 $alloptions = wp_load_alloptions();
     353                $alloptions = wp_load_alloptions( true );
    354354                if ( isset( $alloptions[$option] ) ) {
    355355                        $alloptions[ $option ] = $serialized_value;
    356356                        wp_cache_set( 'alloptions', $alloptions, 'options' );
    357357                } else {
    358358                        wp_cache_set( $option, $serialized_value, 'options' );
    359359                }