diff options
| author | Bond-009 <bond.009@outlook.com> | 2019-02-13 17:36:10 +0100 |
|---|---|---|
| committer | Bond-009 <bond.009@outlook.com> | 2019-02-16 00:43:56 +0100 |
| commit | 2cb747651b134313ffdca930af38b07002a38992 (patch) | |
| tree | 59f8d6d7c327762018774cc3b980f56b040ae922 /Jellyfin.Server | |
| parent | 46897aab4f85bd2ea50e0ff1ef57c0cfa8f48c67 (diff) | |
Correctly dispose WebSocketSharpListener
Diffstat (limited to 'Jellyfin.Server')
| -rw-r--r-- | Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs b/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs index 4b6649217..90bd981f5 100644 --- a/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs +++ b/Jellyfin.Server/SocketSharp/WebSocketSharpListener.cs @@ -223,38 +223,39 @@ namespace Jellyfin.Server.SocketSharp public Task Stop() { _disposeCancellationTokenSource.Cancel(); - - if (_listener != null) - { - _listener.Close(); - } + _listener?.Close(); return Task.CompletedTask; } + /// <summary> + /// Releases the unmanaged resources and disposes of the managed resources used. + /// </summary> public void Dispose() { Dispose(true); + GC.SuppressFinalize(this); } private bool _disposed; - private readonly object _disposeLock = new object(); + + /// <summary> + /// Releases the unmanaged resources and disposes of the managed resources used. + /// </summary> + /// <param name="disposing">Whether or not the managed resources should be disposed</param> protected virtual void Dispose(bool disposing) { - if (_disposed) return; - - lock (_disposeLock) + if (_disposed) { - if (_disposed) return; - - if (disposing) - { - Stop(); - } + return; + } - // release unmanaged resources here... - _disposed = true; + if (disposing) + { + Stop().GetAwaiter().GetResult(); } + + _disposed = true; } } } |
