Merge pull request #2866 from MediaBrowser/dev

3.2.30.8
pull/1154/head
Luke 7 years ago committed by GitHub
commit 5116b175ce

@ -17,7 +17,7 @@ using MediaBrowser.Model.Xml;
namespace Emby.Dlna.ContentDirectory
{
public class ContentDirectory : BaseService, IContentDirectory, IDisposable
public class ContentDirectory : BaseService, IContentDirectory
{
private readonly ILibraryManager _libraryManager;
private readonly IImageProcessor _imageProcessor;
@ -143,10 +143,5 @@ namespace Emby.Dlna.ContentDirectory
return null;
}
public void Dispose()
{
}
}
}

@ -596,6 +596,7 @@ namespace Emby.Dlna
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}

@ -394,6 +394,7 @@ namespace Emby.Dlna.Main
_communicationsServer.Dispose();
_communicationsServer = null;
}
GC.SuppressFinalize(this);
}
public void DisposeDlnaServer()

@ -9,7 +9,7 @@ using MediaBrowser.Model.Xml;
namespace Emby.Dlna.MediaReceiverRegistrar
{
public class MediaReceiverRegistrar : BaseService, IMediaReceiverRegistrar, IDisposable
public class MediaReceiverRegistrar : BaseService, IMediaReceiverRegistrar
{
private readonly IServerConfigurationManager _config;
protected readonly IXmlReaderSettingsFactory XmlReaderSettingsFactory;
@ -33,10 +33,5 @@ namespace Emby.Dlna.MediaReceiverRegistrar
Logger, XmlReaderSettingsFactory)
.ProcessControlRequest(request);
}
public void Dispose()
{
}
}
}

@ -1105,6 +1105,7 @@ namespace Emby.Dlna.PlayTo
_disposed = true;
DisposeTimer();
GC.SuppressFinalize(this);
}
}

@ -685,6 +685,7 @@ namespace Emby.Dlna.PlayTo
_device.OnDeviceUnavailable = null;
_device.Dispose();
GC.SuppressFinalize(this);
}
}

@ -225,6 +225,7 @@ namespace Emby.Dlna.PlayTo
{
_disposed = true;
_deviceDiscovery.DeviceDiscovered -= _deviceDiscovery_DeviceDiscovered;
GC.SuppressFinalize(this);
}
}
}

@ -12,7 +12,7 @@ using MediaBrowser.Model.System;
namespace Emby.Drawing.ImageMagick
{
public class ImageMagickEncoder : IImageEncoder
public class ImageMagickEncoder : IImageEncoder, IDisposable
{
private readonly ILogger _logger;
private readonly IApplicationPaths _appPaths;
@ -38,7 +38,8 @@ namespace Emby.Drawing.ImageMagick
// Some common file name extensions for RAW picture files include: .cr2, .crw, .dng, .nef, .orf, .rw2, .pef, .arw, .sr2, .srf, and .tif.
return new[]
{
"tiff",
"tiff",
"tif",
"jpeg",
"jpg",
"png",
@ -327,6 +328,7 @@ namespace Emby.Drawing.ImageMagick
{
_disposed = true;
Wand.CloseEnvironment();
GC.SuppressFinalize(this);
}
private void CheckDisposed()

@ -193,30 +193,31 @@ namespace Emby.Drawing.Skia
{
using (var stream = new SKFileStream(path))
{
var codec = SKCodec.Create(stream);
if (codec == null)
using (var codec = SKCodec.Create(stream))
{
origin = SKCodecOrigin.TopLeft;
return null;
}
if (codec == null)
{
origin = SKCodecOrigin.TopLeft;
return null;
}
// create the bitmap
var bitmap = new SKBitmap(codec.Info.Width, codec.Info.Height, !requiresTransparencyHack);
// create the bitmap
var bitmap = new SKBitmap(codec.Info.Width, codec.Info.Height, !requiresTransparencyHack);
if (bitmap != null)
{
// decode
codec.GetPixels(bitmap.Info, bitmap.GetPixels());
if (bitmap != null)
{
// decode
codec.GetPixels(bitmap.Info, bitmap.GetPixels());
origin = codec.Origin;
}
else
{
origin = SKCodecOrigin.TopLeft;
}
origin = codec.Origin;
}
else
{
origin = SKCodecOrigin.TopLeft;
}
return bitmap;
return bitmap;
}
}
}
@ -593,10 +594,6 @@ namespace Emby.Drawing.Skia
get { return "Skia"; }
}
public void Dispose()
{
}
public bool SupportsImageCollageCreation
{
get { return true; }

@ -126,6 +126,7 @@ namespace Emby.Drawing
return new string[]
{
"tiff",
"tif",
"jpeg",
"jpg",
"png",
@ -967,8 +968,15 @@ namespace Emby.Drawing
public void Dispose()
{
_disposed = true;
_imageEncoder.Dispose();
var disposable = _imageEncoder as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
_saveImageSizeTimer.Dispose();
GC.SuppressFinalize(this);
}
private void CheckDisposed()

@ -61,9 +61,5 @@ namespace Emby.Drawing
{
throw new NotImplementedException();
}
public void Dispose()
{
}
}
}

@ -491,6 +491,7 @@ namespace Emby.Server.Implementations.Activity
//_logManager.LoggerLoaded -= _logManager_LoggerLoaded;
_appHost.ApplicationUpdated -= _appHost_ApplicationUpdated;
GC.SuppressFinalize(this);
}
/// <summary>

@ -828,7 +828,7 @@ namespace Emby.Server.Implementations
RegisterSingleInstance(MemoryStreamFactory);
RegisterSingleInstance(SystemEvents);
RegisterSingleInstance(LogManager);
RegisterSingleInstance(LogManager, false);
RegisterSingleInstance(Logger);
RegisterSingleInstance(EnvironmentInfo);
@ -2341,6 +2341,7 @@ namespace Emby.Server.Implementations
_disposed = true;
Dispose(true);
GC.SuppressFinalize(this);
}
}
@ -2354,6 +2355,7 @@ namespace Emby.Server.Implementations
{
var type = GetType();
LogManager.AddConsoleOutput();
Logger.Info("Disposing " + type.Name);
var parts = DisposableParts.Distinct().Where(i => i.GetType() != type).ToList();

@ -1624,6 +1624,7 @@ namespace Emby.Server.Implementations.Channels
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}

@ -77,6 +77,7 @@ namespace Emby.Server.Implementations.Data
{
Close();
}
GC.SuppressFinalize(this);
}
}
}

@ -104,6 +104,7 @@ namespace Emby.Server.Implementations.Diagnostics
public void Dispose()
{
_process.Dispose();
GC.SuppressFinalize(this);
}
}
}

@ -112,6 +112,7 @@ namespace Emby.Server.Implementations.EntryPoints
_appHost.HasPendingRestartChanged -= _appHost_HasPendingRestartChanged;
DisposeTimer();
GC.SuppressFinalize(this);
}
private void DisposeTimer()

@ -294,6 +294,7 @@ namespace Emby.Server.Implementations.EntryPoints
{
_disposed = true;
DisposeNat();
GC.SuppressFinalize(this);
}
private void DisposeNat()

@ -60,6 +60,7 @@ namespace Emby.Server.Implementations.EntryPoints
_timer.Dispose();
_timer = null;
}
GC.SuppressFinalize(this);
}
}
}

@ -426,6 +426,7 @@ namespace Emby.Server.Implementations.EntryPoints
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>

@ -68,6 +68,7 @@ namespace Emby.Server.Implementations.EntryPoints
_timer.Dispose();
_timer = null;
}
GC.SuppressFinalize(this);
}
}
}

@ -72,6 +72,7 @@ namespace Emby.Server.Implementations.EntryPoints
_liveTvManager.SeriesTimerCancelled -= _liveTvManager_SeriesTimerCancelled;
_liveTvManager.TimerCreated -= _liveTvManager_TimerCreated;
_liveTvManager.SeriesTimerCreated -= _liveTvManager_SeriesTimerCreated;
GC.SuppressFinalize(this);
}
}
}

@ -1,4 +1,5 @@
using MediaBrowser.Controller.Library;
using System;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Plugins;
using System.Threading;
@ -36,6 +37,7 @@ namespace Emby.Server.Implementations.EntryPoints
/// </summary>
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}

@ -174,6 +174,7 @@ namespace Emby.Server.Implementations.EntryPoints
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>

@ -1,4 +1,5 @@
using Emby.Server.Implementations.Browser;
using System;
using Emby.Server.Implementations.Browser;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.Logging;
@ -54,6 +55,7 @@ namespace Emby.Server.Implementations.EntryPoints
/// </summary>
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}

@ -43,6 +43,7 @@ namespace Emby.Server.Implementations.EntryPoints
public void Dispose()
{
_systemEvents.SystemShutdown -= _systemEvents_SystemShutdown;
GC.SuppressFinalize(this);
}
}
}

@ -65,6 +65,7 @@ namespace Emby.Server.Implementations.EntryPoints
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>

@ -130,6 +130,7 @@ namespace Emby.Server.Implementations.EntryPoints
public void Dispose()
{
_sessionManager.SessionStarted -= _sessionManager_SessionStarted;
GC.SuppressFinalize(this);
}
}
}

@ -160,6 +160,7 @@ namespace Emby.Server.Implementations.EntryPoints
}
_userDataManager.UserDataSaved -= _userDataManager_UserDataSaved;
GC.SuppressFinalize(this);
}
}
}

@ -822,27 +822,6 @@ namespace Emby.Server.Implementations.HttpClientManager
return url;
}
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>
/// Releases unmanaged and - optionally - managed resources.
/// </summary>
/// <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)
{
if (dispose)
{
_httpClients.Clear();
}
}
/// <summary>
/// Throws the cancellation exception.
/// </summary>

@ -123,6 +123,7 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>

@ -238,6 +238,7 @@ namespace Emby.Server.Implementations.IO
{
_disposed = true;
DisposeTimer();
GC.SuppressFinalize(this);
}
}
}

@ -70,6 +70,7 @@ namespace Emby.Server.Implementations.IO
{
mounter.Dispose();
}
GC.SuppressFinalize(this);
}
}
}

@ -649,6 +649,7 @@ namespace Emby.Server.Implementations.IO
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}

@ -524,6 +524,7 @@ namespace Emby.Server.Implementations.Library
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private readonly object _disposeLock = new object();

@ -2630,6 +2630,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
pair.Value.CancellationTokenSource.Cancel();
}
GC.SuppressFinalize(this);
}
public List<VirtualFolderInfo> GetRecordingFolders()

@ -1,4 +1,5 @@
using MediaBrowser.Controller.Plugins;
using System;
using MediaBrowser.Controller.Plugins;
namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
@ -11,6 +12,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}

@ -2779,6 +2779,7 @@ namespace Emby.Server.Implementations.LiveTv
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private bool _isDisposed = false;

@ -422,7 +422,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
SupportsTranscoding = true,
IsInfiniteStream = true,
IgnoreDts = true,
//SupportsProbing = false,
SupportsProbing = false,
//AnalyzeDurationMs = 2000000
//IgnoreIndex = true,
//ReadAtNativeFramerate = true

@ -99,6 +99,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
var task = StopStreaming();
Task.WaitAll(task);
GC.SuppressFinalize(this);
}
public async Task<bool> CheckTunerAvailability(IpAddressInfo remoteIp, int tuner, CancellationToken cancellationToken)

@ -107,6 +107,7 @@ namespace Emby.Server.Implementations.Logging
}
_fileLogger = null;
GC.SuppressFinalize(this);
}
}
@ -130,13 +131,18 @@ namespace Emby.Server.Implementations.Logging
private void LogInternal()
{
while (!_cancellationTokenSource.IsCancellationRequested)
while (!_cancellationTokenSource.IsCancellationRequested && !_disposed)
{
try
{
foreach (var message in _queue.GetConsumingEnumerable())
{
var bytes = Encoding.UTF8.GetBytes(message + Environment.NewLine);
if (_disposed)
{
return;
}
_fileStream.Write(bytes, 0, bytes.Length);
_fileStream.Flush(true);
@ -166,17 +172,18 @@ namespace Emby.Server.Implementations.Logging
return;
}
_fileStream.Flush();
_fileStream.Flush(true);
}
public void Dispose()
{
_cancellationTokenSource.Cancel();
_disposed = true;
Flush();
_fileStream.Flush();
_disposed = true;
_fileStream.Dispose();
GC.SuppressFinalize(this);
}
}

@ -92,6 +92,7 @@ namespace Emby.Server.Implementations.Net
public void Dispose()
{
Socket.Dispose();
GC.SuppressFinalize(this);
}
}
}

@ -271,6 +271,7 @@ namespace Emby.Server.Implementations.News
_timer.Dispose();
_timer = null;
}
GC.SuppressFinalize(this);
}
}
}

@ -551,6 +551,7 @@ namespace Emby.Server.Implementations.Notifications
_deviceManager.CameraImageUploaded -= _deviceManager_CameraImageUploaded;
_userManager.UserLockedOut -= _userManager_UserLockedOut;
GC.SuppressFinalize(this);
}
private void DisposeLibraryUpdateTimer()

@ -1,4 +1,5 @@
using MediaBrowser.Controller.Net;
using System;
using MediaBrowser.Controller.Net;
using MediaBrowser.Controller.Notifications;
using MediaBrowser.Controller.Plugins;
using System.Linq;
@ -49,6 +50,7 @@ namespace Emby.Server.Implementations.Notifications
public void Dispose()
{
_notificationsRepo.NotificationAdded -= _notificationsRepo_NotificationAdded;
GC.SuppressFinalize(this);
}
}
}

@ -14,7 +14,7 @@ using System.Threading.Tasks;
namespace Emby.Server.Implementations.Session
{
public class HttpSessionController : ISessionController, IDisposable
public class HttpSessionController : ISessionController
{
private readonly IHttpClient _httpClient;
private readonly IJsonSerializer _json;
@ -195,9 +195,5 @@ namespace Emby.Server.Implementations.Session
return "?" + args;
}
public void Dispose()
{
}
}
}

@ -102,6 +102,7 @@ namespace Emby.Server.Implementations.Session
public void Dispose()
{
_serverManager.WebSocketConnected -= _serverManager_WebSocketConnected;
GC.SuppressFinalize(this);
}
/// <summary>

@ -283,6 +283,7 @@ namespace Emby.Server.Implementations.Session
{
socket.Closed -= connection_Closed;
}
GC.SuppressFinalize(this);
}
}
}

@ -217,6 +217,7 @@ namespace Emby.Server.Implementations.TV
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>

@ -31,6 +31,7 @@ namespace Emby.Server.Implementations.Threading
public void Dispose()
{
_timer.Dispose();
GC.SuppressFinalize(this);
}
}
}

@ -722,6 +722,7 @@ namespace Emby.Server.Implementations.Updates
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
}

@ -81,18 +81,14 @@ namespace MediaBrowser.Api
return value.Split(separator);
}
/// <summary>
/// Runs this instance.
/// </summary>
public void Run()
{
}
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
}

@ -314,6 +314,7 @@ namespace MediaBrowser.Api
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}

@ -70,6 +70,7 @@ namespace MediaBrowser.Common.Net
{
_disposable.Dispose();
}
GC.SuppressFinalize(this);
}
}
}

@ -9,7 +9,7 @@ namespace MediaBrowser.Common.Net
/// <summary>
/// Interface IHttpClient
/// </summary>
public interface IHttpClient : IDisposable
public interface IHttpClient
{
/// <summary>
/// Gets the response.

@ -30,6 +30,7 @@ namespace MediaBrowser.Common.Progress
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>

@ -3,7 +3,7 @@ using MediaBrowser.Model.Drawing;
namespace MediaBrowser.Controller.Drawing
{
public interface IImageEncoder : IDisposable
public interface IImageEncoder
{
/// <summary>
/// Gets the supported input formats.

@ -23,6 +23,7 @@ namespace MediaBrowser.Controller.Drawing
{
Stream.Dispose();
}
GC.SuppressFinalize(this);
}
}
}

@ -303,6 +303,7 @@ namespace MediaBrowser.Controller.Session
StopAutomaticProgress();
_sessionManager = null;
GC.SuppressFinalize(this);
}
}
}

@ -59,6 +59,7 @@ namespace MediaBrowser.Model.Net
{
_disposable.Dispose();
}
GC.SuppressFinalize(this);
}
}
}

@ -1110,6 +1110,7 @@ namespace MediaBrowser.Providers.Manager
{
_disposeCancellationTokenSource.Cancel();
}
GC.SuppressFinalize(this);
}
}
}

@ -29,7 +29,7 @@ namespace MediaBrowser.Providers.Movies
/// <summary>
/// Class MovieDbProvider
/// </summary>
public class MovieDbProvider : IRemoteMetadataProvider<Movie, MovieInfo>, IDisposable, IHasOrder
public class MovieDbProvider : IRemoteMetadataProvider<Movie, MovieInfo>, IHasOrder
{
internal static MovieDbProvider Current { get; private set; }
@ -130,14 +130,6 @@ namespace MediaBrowser.Providers.Movies
get { return "TheMovieDb"; }
}
/// <summary>
/// Releases unmanaged and - optionally - managed resources.
/// </summary>
/// <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)
{
}
/// <summary>
/// The _TMDB settings task
/// </summary>
@ -434,11 +426,6 @@ namespace MediaBrowser.Providers.Movies
return await _httpClient.Get(options).ConfigureAwait(false);
}
public void Dispose()
{
Dispose(true);
}
/// <summary>
/// Class TmdbTitle
/// </summary>

@ -56,20 +56,22 @@ namespace MediaBrowser.Server.Mac
var appPaths = CreateApplicationPaths(appFolderPath, customProgramDataPath);
var logManager = new SimpleLogManager(appPaths.LogDirectoryPath, "server");
logManager.ReloadLogger(LogSeverity.Info);
logManager.AddConsoleOutput();
using (var logManager = new SimpleLogManager(appPaths.LogDirectoryPath, "server"))
{
logManager.ReloadLogger(LogSeverity.Info);
logManager.AddConsoleOutput();
var logger = _logger = logManager.GetLogger("Main");
var logger = _logger = logManager.GetLogger("Main");
ApplicationHost.LogEnvironmentInfo(logger, appPaths, true);
ApplicationHost.LogEnvironmentInfo(logger, appPaths, true);
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
StartApplication(appPaths, logManager, options);
NSApplication.Init ();
NSApplication.Main (args);
}
StartApplication(appPaths, logManager, options);
NSApplication.Init();
NSApplication.Main(args);
}
}
private static ServerApplicationPaths CreateApplicationPaths(string appFolderPath, string programDataPath)
{

@ -50,28 +50,30 @@ namespace MediaBrowser.Server.Mono
var appPaths = CreateApplicationPaths(applicationPath, customProgramDataPath);
var logManager = new SimpleLogManager(appPaths.LogDirectoryPath, "server");
logManager.ReloadLogger(LogSeverity.Info);
logManager.AddConsoleOutput();
using (var logManager = new SimpleLogManager(appPaths.LogDirectoryPath, "server"))
{
logManager.ReloadLogger(LogSeverity.Info);
logManager.AddConsoleOutput();
var logger = _logger = logManager.GetLogger("Main");
var logger = _logger = logManager.GetLogger("Main");
ApplicationHost.LogEnvironmentInfo(logger, appPaths, true);
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
ApplicationHost.LogEnvironmentInfo(logger, appPaths, true);
try
{
RunApplication(appPaths, logManager, options);
}
finally
{
_logger.Info("Disposing app host");
_appHost.Dispose();
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
if (_restartOnShutdown)
try
{
StartNewInstance(options);
RunApplication(appPaths, logManager, options);
}
finally
{
_logger.Info("Disposing app host");
_appHost.Dispose();
if (_restartOnShutdown)
{
StartNewInstance(options);
}
}
}
}

@ -72,69 +72,71 @@ namespace MediaBrowser.ServerApplication
var appPaths = CreateApplicationPaths(ApplicationPath, IsRunningAsService);
var logManager = new SimpleLogManager(appPaths.LogDirectoryPath, "server");
logManager.ReloadLogger(LogSeverity.Debug);
logManager.AddConsoleOutput();
using (var logManager = new SimpleLogManager(appPaths.LogDirectoryPath, "server"))
{
logManager.ReloadLogger(LogSeverity.Debug);
logManager.AddConsoleOutput();
var logger = _logger = logManager.GetLogger("Main");
var logger = _logger = logManager.GetLogger("Main");
ApplicationHost.LogEnvironmentInfo(logger, appPaths, true);
ApplicationHost.LogEnvironmentInfo(logger, appPaths, true);
// Install directly
if (options.ContainsOption("-installservice"))
{
logger.Info("Performing service installation");
InstallService(ApplicationPath, logger);
return;
}
// Install directly
if (options.ContainsOption("-installservice"))
{
logger.Info("Performing service installation");
InstallService(ApplicationPath, logger);
return;
}
// Restart with admin rights, then install
if (options.ContainsOption("-installserviceasadmin"))
{
logger.Info("Performing service installation");
RunServiceInstallation(ApplicationPath);
return;
}
// Restart with admin rights, then install
if (options.ContainsOption("-installserviceasadmin"))
{
logger.Info("Performing service installation");
RunServiceInstallation(ApplicationPath);
return;
}
// Uninstall directly
if (options.ContainsOption("-uninstallservice"))
{
logger.Info("Performing service uninstallation");
UninstallService(ApplicationPath, logger);
return;
}
// Uninstall directly
if (options.ContainsOption("-uninstallservice"))
{
logger.Info("Performing service uninstallation");
UninstallService(ApplicationPath, logger);
return;
}
// Restart with admin rights, then uninstall
if (options.ContainsOption("-uninstallserviceasadmin"))
{
logger.Info("Performing service uninstallation");
RunServiceUninstallation(ApplicationPath);
return;
}
// Restart with admin rights, then uninstall
if (options.ContainsOption("-uninstallserviceasadmin"))
{
logger.Info("Performing service uninstallation");
RunServiceUninstallation(ApplicationPath);
return;
}
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
RunServiceInstallationIfNeeded(ApplicationPath);
RunServiceInstallationIfNeeded(ApplicationPath);
if (IsAlreadyRunning(ApplicationPath, currentProcess))
{
logger.Info("Shutting down because another instance of Emby Server is already running.");
return;
}
if (IsAlreadyRunning(ApplicationPath, currentProcess))
{
logger.Info("Shutting down because another instance of Emby Server is already running.");
return;
}
if (PerformUpdateIfNeeded(appPaths, logger))
{
logger.Info("Exiting to perform application update.");
return;
}
if (PerformUpdateIfNeeded(appPaths, logger))
{
logger.Info("Exiting to perform application update.");
return;
}
try
{
RunApplication(appPaths, logManager, IsRunningAsService, options);
}
finally
{
OnServiceShutdown();
try
{
RunApplication(appPaths, logManager, IsRunningAsService, options);
}
finally
{
OnServiceShutdown();
}
}
}

@ -81,6 +81,7 @@ namespace MediaBrowser.XbmcMetadata
public void Dispose()
{
_userDataManager.UserDataSaved -= _userDataManager_UserDataSaved;
GC.SuppressFinalize(this);
}
private async void SaveMetadataForItem(BaseItem item, ItemUpdateType updateReason)

@ -1,3 +1,3 @@
using System.Reflection;
[assembly: AssemblyVersion("3.2.30.7")]
[assembly: AssemblyVersion("3.2.30.8")]

@ -248,6 +248,7 @@ namespace SocketHttpListener.Net
Close(true); //TODO: Should we force here or not?
disposed = true;
GC.SuppressFinalize(this);
}
internal void CheckDisposed()

@ -880,6 +880,7 @@ namespace SocketHttpListener
void IDisposable.Dispose()
{
Close(CloseStatusCode.Away, null);
GC.SuppressFinalize(this);
}
#endregion

Loading…
Cancel
Save