diff options
Diffstat (limited to 'MediaBrowser.Common.Implementations')
4 files changed, 29 insertions, 16 deletions
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs index eeef6225dd..e8acf2975b 100644 --- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs +++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs @@ -1,17 +1,17 @@ -using System.IO; -using System.Linq; -using System.Reflection; -using MediaBrowser.Common.Kernel; +using MediaBrowser.Common.Kernel; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Serialization; using SimpleInjector; using System; using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; using System.Threading; namespace MediaBrowser.Common.Implementations { - public abstract class BaseApplicationHost : IDisposable + public abstract class BaseApplicationHost { /// <summary> /// Gets or sets the logger. @@ -314,18 +314,22 @@ namespace MediaBrowser.Common.Implementations /// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected virtual void Dispose(bool dispose) { - var type = GetType(); + if (dispose) + { + var type = GetType(); - Logger.Info("Disposing " + type.Name); + Logger.Info("Disposing " + type.Name); - foreach (var part in DisposableParts.Distinct().Where(i => i.GetType() != type).ToList()) - { - Logger.Info("Disposing " + part.GetType().Name); + var parts = DisposableParts.Distinct().Where(i => i.GetType() != type).ToList(); + DisposableParts.Clear(); - part.Dispose(); - } + foreach (var part in parts) + { + Logger.Info("Disposing " + part.GetType().Name); - DisposableParts.Clear(); + part.Dispose(); + } + } } } } diff --git a/MediaBrowser.Common.Implementations/HttpServer/HttpServer.cs b/MediaBrowser.Common.Implementations/HttpServer/HttpServer.cs index b67236ee9f..c0f075c5ae 100644 --- a/MediaBrowser.Common.Implementations/HttpServer/HttpServer.cs +++ b/MediaBrowser.Common.Implementations/HttpServer/HttpServer.cs @@ -518,7 +518,7 @@ namespace MediaBrowser.Common.Implementations.HttpServer /// <summary> /// Class ContainerAdapter /// </summary> - class ContainerAdapter : IContainerAdapter + class ContainerAdapter : IContainerAdapter, IRelease { /// <summary> /// The _app host @@ -552,5 +552,14 @@ namespace MediaBrowser.Common.Implementations.HttpServer { return _appHost.TryResolve<T>(); } + + /// <summary> + /// Releases the specified instance. + /// </summary> + /// <param name="instance">The instance.</param> + public void Release(object instance) + { + // Leave this empty so SS doesn't try to dispose our objects + } } }
\ No newline at end of file diff --git a/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs b/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs index 320f440fc1..4ecb8f0ef8 100644 --- a/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs +++ b/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs @@ -71,6 +71,8 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks JsonSerializer = jsonSerializer; Logger = logger; ServerManager = serverManager; + + ReloadTriggerEvents(true); } /// <summary> diff --git a/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs b/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs index 2a3b0155f3..bd584bf0cb 100644 --- a/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs +++ b/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs @@ -411,8 +411,6 @@ namespace MediaBrowser.Common.Implementations.ServerManager if (HttpServer != null) { - _logger.Info("Disposing Http Server"); - HttpServer.WebSocketConnected -= HttpServer_WebSocketConnected; HttpServer.Dispose(); } |
