close method

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

Implementation

@override
Future<void> close() async {
  Phidget.unregisterInstance(identityHashCode(this));

  if (!_positionStreamController.isClosed)
    await _positionStreamController.close();

  await super.close();

  if (_handle != null) {
    try {
      bindings.phidgetClose(_handle!);
    } catch (_) {}
    final pDelete = calloc<bindings.PhidgetHandle>();
    pDelete.value = _handle!;
    try {
      bindings.encoderDelete(pDelete);
    } finally {
      calloc.free(pDelete);
    }
    _handle = null;
  }
}