|
@@ -19,7 +19,7 @@ namespace MediaBrowser.Controller.Session
|
|
/// <summary>
|
|
/// <summary>
|
|
/// Class SessionInfo.
|
|
/// Class SessionInfo.
|
|
/// </summary>
|
|
/// </summary>
|
|
- public sealed class SessionInfo : IAsyncDisposable, IDisposable
|
|
|
|
|
|
+ public sealed class SessionInfo : IAsyncDisposable
|
|
{
|
|
{
|
|
// 1 second
|
|
// 1 second
|
|
private const long ProgressIncrement = 10000000;
|
|
private const long ProgressIncrement = 10000000;
|
|
@@ -374,26 +374,6 @@ namespace MediaBrowser.Controller.Session
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /// <inheritdoc />
|
|
|
|
- public void Dispose()
|
|
|
|
- {
|
|
|
|
- _disposed = true;
|
|
|
|
-
|
|
|
|
- StopAutomaticProgress();
|
|
|
|
-
|
|
|
|
- var controllers = SessionControllers.ToList();
|
|
|
|
- SessionControllers = Array.Empty<ISessionController>();
|
|
|
|
-
|
|
|
|
- foreach (var controller in controllers)
|
|
|
|
- {
|
|
|
|
- if (controller is IDisposable disposable)
|
|
|
|
- {
|
|
|
|
- _logger.LogDebug("Disposing session controller synchronously {TypeName}", disposable.GetType().Name);
|
|
|
|
- disposable.Dispose();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public async ValueTask DisposeAsync()
|
|
public async ValueTask DisposeAsync()
|
|
{
|
|
{
|
|
_disposed = true;
|
|
_disposed = true;
|
|
@@ -401,6 +381,7 @@ namespace MediaBrowser.Controller.Session
|
|
StopAutomaticProgress();
|
|
StopAutomaticProgress();
|
|
|
|
|
|
var controllers = SessionControllers.ToList();
|
|
var controllers = SessionControllers.ToList();
|
|
|
|
+ SessionControllers = Array.Empty<ISessionController>();
|
|
|
|
|
|
foreach (var controller in controllers)
|
|
foreach (var controller in controllers)
|
|
{
|
|
{
|
|
@@ -409,6 +390,11 @@ namespace MediaBrowser.Controller.Session
|
|
_logger.LogDebug("Disposing session controller asynchronously {TypeName}", disposableAsync.GetType().Name);
|
|
_logger.LogDebug("Disposing session controller asynchronously {TypeName}", disposableAsync.GetType().Name);
|
|
await disposableAsync.DisposeAsync().ConfigureAwait(false);
|
|
await disposableAsync.DisposeAsync().ConfigureAwait(false);
|
|
}
|
|
}
|
|
|
|
+ else if (controller is IDisposable disposable)
|
|
|
|
+ {
|
|
|
|
+ _logger.LogDebug("Disposing session controller synchronously {TypeName}", disposable.GetType().Name);
|
|
|
|
+ disposable.Dispose();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|