destroy method
Destroys the inlet and cleans up resources. You can no longer use the inlet after calling this method.
Implementation
@override
Future<void> destroy() async {
if (destroyed) {
return; // Already destroyed
}
super.destroy();
// Clean up resources
if (_useIsolates) {
await _isolateManagerBang.sendMessage(
LSLMessage(LSLMessageType.destroy, {}),
);
_isolateManagerBang.dispose();
} else if (_inlet != null) {
try {
lsl_close_stream(_inletBang);
} catch (e) {
// Ignore errors during close, as the inlet may already be closed
}
try {
lsl_destroy_inlet(_inletBang);
} catch (e) {
// Ignore errors during destroy, as the inlet may already be destroyed
}
}
_inlet = null;
_isolateManager = null;
_buffer.free();
}