drupal_register_shutdown_function

Versions
mediamosa-21
&drupal_register_shutdown_function($callback = NULL, $parameters = NULL)

Register a function for execution on shutdown.

Wrapper for register_shutdown_function() which catches thrown exceptions to avoid "Exception thrown without a stack frame in Unknown".

See also

register_shutdown_function()

Parameters

$callback The shutdown function to register.

$parameters It is possible to pass parameters to the shutdown function by passing additional parameters.

Return value

Array of shutdown functions to be executed.

▾ 11 functions call drupal_register_shutdown_function()

drupal_cron_run in includes/common.inc
Executes a cron run when called.
hook_boot in modules/system/system.api.php
Perform setup tasks. See also, hook_init.
menu_cache_clear in includes/menu.inc
Clears the cached cached data for a single named menu.
search_cron in modules/search/search.module
Implements hook_cron().
system_test_page_shutdown_functions in modules/simpletest/tests/system_test.module
A simple page callback which adds a register shutdown function.
_batch_page in includes/batch.inc
State-based dispatcher for the batch processing page.
_drupal_session_read in includes/session.inc
Session handler assigned by session_set_save_handler().
_drupal_shutdown_function in includes/bootstrap.inc
Internal function used to execute registered shutdown functions.
_lock_id in includes/lock.inc
Helper function to get this request's unique id.
_menu_clear_page_cache in includes/menu.inc
Helper function to clear the page and block caches at most twice per page load.
_system_test_first_shutdown_function in modules/simpletest/tests/system_test.module
Dummy shutdown function which registers another shutdown function.

Code

includes/bootstrap.inc, line 2663

<?php
function &drupal_register_shutdown_function($callback = NULL, $parameters = NULL) {
  // We cannot use drupal_static() here because the static cache is reset
  // during batch processing, which breaks batch handling.
  static $callbacks = array();

  if (isset($callback)) {
    // Only register the internal shutdown function once.
    if (empty($callbacks)) {
      register_shutdown_function('_drupal_shutdown_function');
    }
    $args = func_get_args();
    array_shift($args);
    // Save callback and arguments
    $callbacks[] = array('callback' => $callback, 'arguments' => $args);
  }
  return $callbacks;
}
?>