mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-30 00:22:40 +01:00
Add missing Dispose guard
This commit is contained in:
@@ -315,102 +315,109 @@ namespace Tgstation.Server.Host.Components
|
||||
eventConsumer,
|
||||
dmbFactory,
|
||||
loggerFactory.CreateLogger<EngineManager>());
|
||||
|
||||
var commandFactory = new CommandFactory(assemblyInformationProvider, engineManager, repoManager, databaseContextFactory, dmbFactory, metadata);
|
||||
|
||||
var chatManager = chatFactory.CreateChatManager(commandFactory, metadata.ChatSettings);
|
||||
try
|
||||
{
|
||||
var reattachInfoHandler = new SessionPersistor(
|
||||
databaseContextFactory,
|
||||
dmbFactory,
|
||||
processExecutor,
|
||||
loggerFactory.CreateLogger<SessionPersistor>(),
|
||||
metadata);
|
||||
var commandFactory = new CommandFactory(assemblyInformationProvider, engineManager, repoManager, databaseContextFactory, dmbFactory, metadata);
|
||||
|
||||
var sessionControllerFactory = new SessionControllerFactory(
|
||||
processExecutor,
|
||||
engineManager,
|
||||
topicClientFactory,
|
||||
cryptographySuite,
|
||||
assemblyInformationProvider,
|
||||
gameIoManager,
|
||||
diagnosticsIOManager,
|
||||
chatManager,
|
||||
networkPromptReaper,
|
||||
platformIdentifier,
|
||||
bridgeRegistrar,
|
||||
serverPortProvider,
|
||||
eventConsumer,
|
||||
asyncDelayer,
|
||||
dotnetDumpService,
|
||||
metricFactory,
|
||||
loggerFactory,
|
||||
loggerFactory.CreateLogger<SessionControllerFactory>(),
|
||||
sessionConfiguration,
|
||||
metadata);
|
||||
|
||||
var watchdog = watchdogFactory.CreateWatchdog(
|
||||
chatManager,
|
||||
dmbFactory,
|
||||
reattachInfoHandler,
|
||||
sessionControllerFactory,
|
||||
gameIoManager,
|
||||
diagnosticsIOManager,
|
||||
configuration, // watchdog doesn't need itself as an event consumer
|
||||
remoteDeploymentManagerFactory,
|
||||
metricFactory,
|
||||
metadata,
|
||||
metadata.DreamDaemonSettings!);
|
||||
var chatManager = chatFactory.CreateChatManager(commandFactory, metadata.ChatSettings);
|
||||
try
|
||||
{
|
||||
eventConsumer.SetWatchdog(watchdog);
|
||||
commandFactory.SetWatchdog(watchdog);
|
||||
|
||||
Instance? instance = null;
|
||||
var dreamMaker = new DreamMaker(
|
||||
engineManager,
|
||||
gameIoManager,
|
||||
configuration,
|
||||
sessionControllerFactory,
|
||||
eventConsumer,
|
||||
chatManager,
|
||||
processExecutor,
|
||||
var reattachInfoHandler = new SessionPersistor(
|
||||
databaseContextFactory,
|
||||
dmbFactory,
|
||||
repoManager,
|
||||
remoteDeploymentManagerFactory,
|
||||
processExecutor,
|
||||
loggerFactory.CreateLogger<SessionPersistor>(),
|
||||
metadata);
|
||||
|
||||
var sessionControllerFactory = new SessionControllerFactory(
|
||||
processExecutor,
|
||||
engineManager,
|
||||
topicClientFactory,
|
||||
cryptographySuite,
|
||||
assemblyInformationProvider,
|
||||
gameIoManager,
|
||||
diagnosticsIOManager,
|
||||
chatManager,
|
||||
networkPromptReaper,
|
||||
platformIdentifier,
|
||||
bridgeRegistrar,
|
||||
serverPortProvider,
|
||||
eventConsumer,
|
||||
asyncDelayer,
|
||||
dotnetDumpService,
|
||||
metricFactory,
|
||||
loggerFactory.CreateLogger<DreamMaker>(),
|
||||
loggerFactory,
|
||||
loggerFactory.CreateLogger<SessionControllerFactory>(),
|
||||
sessionConfiguration,
|
||||
metadata);
|
||||
|
||||
instance = new Instance(
|
||||
metadata,
|
||||
repoManager,
|
||||
engineManager,
|
||||
dreamMaker,
|
||||
watchdog,
|
||||
var watchdog = watchdogFactory.CreateWatchdog(
|
||||
chatManager,
|
||||
configuration,
|
||||
dmbFactory,
|
||||
jobManager,
|
||||
eventConsumer,
|
||||
reattachInfoHandler,
|
||||
sessionControllerFactory,
|
||||
gameIoManager,
|
||||
diagnosticsIOManager,
|
||||
configuration, // watchdog doesn't need itself as an event consumer
|
||||
remoteDeploymentManagerFactory,
|
||||
asyncDelayer,
|
||||
loggerFactory.CreateLogger<Instance>());
|
||||
metricFactory,
|
||||
metadata,
|
||||
metadata.DreamDaemonSettings!);
|
||||
try
|
||||
{
|
||||
eventConsumer.SetWatchdog(watchdog);
|
||||
commandFactory.SetWatchdog(watchdog);
|
||||
|
||||
return instance;
|
||||
Instance? instance = null;
|
||||
var dreamMaker = new DreamMaker(
|
||||
engineManager,
|
||||
gameIoManager,
|
||||
configuration,
|
||||
sessionControllerFactory,
|
||||
eventConsumer,
|
||||
chatManager,
|
||||
processExecutor,
|
||||
dmbFactory,
|
||||
repoManager,
|
||||
remoteDeploymentManagerFactory,
|
||||
asyncDelayer,
|
||||
metricFactory,
|
||||
loggerFactory.CreateLogger<DreamMaker>(),
|
||||
sessionConfiguration,
|
||||
metadata);
|
||||
|
||||
instance = new Instance(
|
||||
metadata,
|
||||
repoManager,
|
||||
engineManager,
|
||||
dreamMaker,
|
||||
watchdog,
|
||||
chatManager,
|
||||
configuration,
|
||||
dmbFactory,
|
||||
jobManager,
|
||||
eventConsumer,
|
||||
remoteDeploymentManagerFactory,
|
||||
asyncDelayer,
|
||||
loggerFactory.CreateLogger<Instance>());
|
||||
|
||||
return instance;
|
||||
}
|
||||
catch
|
||||
{
|
||||
await watchdog.DisposeAsync();
|
||||
throw;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
await watchdog.DisposeAsync();
|
||||
await chatManager.DisposeAsync();
|
||||
throw;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
await chatManager.DisposeAsync();
|
||||
engineManager.Dispose();
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user