destroy method
Destroys the outlet and cleans up resources. You can no longer use the outlet 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 (_outlet != null) {
try {
lsl_destroy_outlet(_outletBang);
} catch (e) {
// Ignore errors during destroy, as the outlet may already be destroyed
}
}
_outlet = null;
_isolateManager = null;
if (!_buffer.isNullPointer) {
_buffer.free();
}
}