Change record status: 
Project: 
Introduced in branch: 
11.4.x
Introduced in version: 
11.4.0
Description: 

All shutdown functions are deprecated in favor of a new ShutdownHandler class.

Before After
Registering custom shutdown function:
use Drupal\Core\Shutdown\ShutdownHandler;

ShutdownHandler::getInstance()->add('custom_shutdown_function');
drupal_register_shutdown_function('custom_shutdown_function');
Get a list of registered functions:
use Drupal\Core\Shutdown\ShutdownHandler;

$list = ShutdownHandler::getInstance()->get();
$list = drupal_register_shutdown_function();
Reset list of registered shutdown functions:
use Drupal\Core\Shutdown\ShutdownHandler;

$list = ShutdownHandler::getInstance()->reset();
$list = &drupal_register_shutdown_function();
$list = [];
Restore list of registered shutdown functions:
use Drupal\Core\Shutdown\ShutdownHandler;

ShutdownHandler::getInstance()->reset($restore_list);
$list = &drupal_register_shutdown_function();
$list = $restore_list;
(Internal) Call registered shutdown functions:
use Drupal\Core\Shutdown\ShutdownHandler;

ShutdownHandler::getInstance()->shutdown();
_drupal_shutdown_function();
(Internal) Displays and logs any errors that may happen during shutdown:
use Drupal\Core\Utility\Error;

Error::shutdownExceptionHandler($exception);
_drupal_shutdown_function_handle_exception($exception);
Impacts: 
Module developers