diff --git a/src/TensorFlowNET.Core/DisposableObject.cs b/src/TensorFlowNET.Core/DisposableObject.cs index 6359b826..688ac92c 100644 --- a/src/TensorFlowNET.Core/DisposableObject.cs +++ b/src/TensorFlowNET.Core/DisposableObject.cs @@ -34,19 +34,19 @@ namespace Tensorflow private void internal_dispose(bool disposing) { - // free unmanaged resources (unmanaged objects). - if (_handle != IntPtr.Zero) + if (disposing) { - // set large fields to null. - DisposeUnmanagedResources(_handle); + // free unmanaged resources (unmanaged objects) and override a finalizer below. + if (_handle != IntPtr.Zero) + { + // dispose managed state (managed objects). + DisposeManagedResources(); - _handle = IntPtr.Zero; - } + // set large fields to null. + DisposeUnmanagedResources(_handle); - if (disposing) - { - // dispose managed state (managed objects). - DisposeManagedResources(); + _handle = IntPtr.Zero; + } } } diff --git a/src/TensorFlowNET.Core/Sessions/BaseSession.cs b/src/TensorFlowNET.Core/Sessions/BaseSession.cs index 907c5414..4c5f2be3 100644 --- a/src/TensorFlowNET.Core/Sessions/BaseSession.cs +++ b/src/TensorFlowNET.Core/Sessions/BaseSession.cs @@ -49,7 +49,7 @@ namespace Tensorflow // dispose newOpts if (opts == null) - c_api.TF_DeleteSessionOptions(newOpts); + newOpts.Dispose(); status.Check(true); }