closePort method
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;
}