function _menu_clear_page_cache

Clears the page and block caches at most twice per page load.

Related topics

3 calls to _menu_clear_page_cache()
menu_link_save in drupal/core/includes/menu.inc
Saves a menu link.
menu_router_rebuild in drupal/core/includes/menu.inc
Populates the database tables used by various menu functions.
_menu_delete_item in drupal/core/includes/menu.inc
Deletes a single menu link.

File

drupal/core/includes/menu.inc, line 3255
API for the Drupal menu system.

Code

function _menu_clear_page_cache() {
  $cache_cleared =& drupal_static(__FUNCTION__, 0);

  // Clear the page and block caches, but at most twice, including at
  //  the end of the page load when there are multiple links saved or deleted.
  if ($cache_cleared == 0) {
    cache_invalidate_tags(array(
      'content' => TRUE,
    ));

    // Keep track of which menus have expanded items.
    _menu_set_expanded_menus();
    $cache_cleared = 1;
  }
  elseif ($cache_cleared == 1) {
    drupal_register_shutdown_function('cache_invalidate_tags', array(
      'content',
      TRUE,
    ));

    // Keep track of which menus have expanded items.
    drupal_register_shutdown_function('_menu_set_expanded_menus');
    $cache_cleared = 2;
  }
}