emergencyShutdown method

Future<void> emergencyShutdown()

Implementation

Future<void> emergencyShutdown() async {
  _logger.warning('Emergency shutdown initiated');
  _isShuttingDown = true;

  try {
    for (var phase in ShutdownPhase.values) {
      final criticalHooks = _hooks[phase]!.where((h) => h.critical);
      for (final hook in criticalHooks) {
        try {
          await hook.execute().timeout(const Duration(seconds: 1));
        } catch (e) {
          _logger.severe(
              'Critical hook ${hook.name} failed during emergency shutdown',
              e);
        }
      }
    }
  } finally {
    _isShutdown = true;
    await _shutdownController.close();
  }
}