reset method

  1. @override
Future<void> reset()
override

Closes both ends of the stream

Implementation

@override
Future<void> reset() async {
  _log.fine('$_logPrefix reset() called. Current state: $_state');
  if (_state == YamuxStreamState.closed || _state == YamuxStreamState.reset) {
    _log.finer('$_logPrefix reset() called but stream already closed/reset. State: $_state. Doing nothing.');
    return;
  }
  final previousState = _state;
  _state = YamuxStreamState.reset; // Set state first

  try {
    _log.finer('$_logPrefix Sending RESET frame.');
    final frame = YamuxFrame.reset(streamId);
    await _sendFrame(frame);
  } catch (e) {
    _log.warning('$_logPrefix Error sending RESET frame during reset(): $e. Will proceed with local cleanup.');
  } finally {
    _log.finer('$_logPrefix Cleaning up after reset (was $previousState).');
    await _cleanup();
  }
}