reset method
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();
}
}