closePort method

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

Low level method for closing the Z-Wave port. Clients should call close which calls this method.

Implementation

@override
Future<void> closePort() async {
  if (isolate == null) return;

  _logger.fine('isolate stopping');
  cmdSendPort?.send(null);
  try {
    await exitPort?.first.timeout(const Duration(seconds: 10));
  } on TimeoutException {
    _logger.warning('killing isolate');
    isolate?.kill();
  } catch (error, trace) {
    _logger.warning('error closing port', error, trace);
  }
  isolate = null;
  _logger.fine('isolate stopped');
  exitPort?.close();
  exitPort = null;
  errorPort?.close();
  errorPort = null;
}