/// <inheritdoc/> protected override void Dispose(bool disposing) { if (_pinNumberToEventHandler != null) { foreach (KeyValuePair <int, LibGpiodDriverEventHandler> kv in _pinNumberToEventHandler) { LibGpiodDriverEventHandler eventHandler = kv.Value; eventHandler.Dispose(); } _pinNumberToEventHandler.Clear(); } if (_pinNumberToSafeLineHandle != null) { foreach (int pin in _pinNumberToSafeLineHandle.Keys) { if (_pinNumberToSafeLineHandle.TryGetValue(pin, out SafeLineHandle pinHandle)) { pinHandle?.Dispose(); } } _pinNumberToSafeLineHandle.Clear(); } _chip?.Dispose(); _chip = null; base.Dispose(disposing); }
protected override void Dispose(bool disposing) { foreach (int pin in _pinNumberToSafeLineHandle.Keys) { if (_pinNumberToSafeLineHandle.TryGetValue(pin, out SafeLineHandle pinHandle)) { Interop.ReleaseGpiodLine(pinHandle); } _pinNumberToSafeLineHandle.Remove(pin); } if (_chip != null) { _chip.Dispose(); _chip = null; } base.Dispose(disposing); }