diff --git a/_advanced_watchdog_8cs_source.html b/_advanced_watchdog_8cs_source.html
index faffb1958b..5b4414943e 100644
--- a/_advanced_watchdog_8cs_source.html
+++ b/_advanced_watchdog_8cs_source.html
@@ -513,17 +513,17 @@ $(document).ready(function() { init_codefold(0); });
ValueTask ApplyInitialDmb(CancellationToken cancellationToken)
Set the ReattachInformation.InitialDmb for the BasicWatchdog.Server.
override async ValueTask< MonitorAction > HandleMonitorWakeup(MonitorActivationReason reason, CancellationToken cancellationToken)
A IWatchdog that manages one server.
-readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
-Models.? CompileJob ActiveCompileJob
Retrieves the Models.CompileJob currently running on the server.
-readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-async ValueTask DisposeAsync()
-readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
-DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
-async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
-IChatManager Chat
The IChatManager for the WatchdogBase.
+readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+Models.? CompileJob ActiveCompileJob
Retrieves the Models.CompileJob currently running on the server.
+readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+async ValueTask DisposeAsync()
+readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
+async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
+IChatManager Chat
The IChatManager for the WatchdogBase.
ValueTask Restart()
Restarts the Host.A ValueTask representing the running operation.
diff --git a/_application_8cs_source.html b/_application_8cs_source.html
index c935064fb8..fbf5a699f3 100644
--- a/_application_8cs_source.html
+++ b/_application_8cs_source.html
@@ -900,7 +900,7 @@ $(document).ready(function() { init_codefold(0); });
IPostWriteHandler for POSIX systems.
An IIOManager that resolve relative paths from another IIOManager to a subdirectory of that.
-IFilesystemLinkFactory for windows systems.
+IFilesystemLinkFactory for windows systems.
IPostWriteHandler for Windows systems.
Handles mapping groups for the JobsHub.
@@ -929,7 +929,7 @@ $(document).ready(function() { init_codefold(0); });
Implements the SystemD notify service protocol.
-
+
Implementation of the file transfer service.
diff --git a/_basic_watchdog_8cs_source.html b/_basic_watchdog_8cs_source.html
index 87c3a289d2..ab1e392fd2 100644
--- a/_basic_watchdog_8cs_source.html
+++ b/_basic_watchdog_8cs_source.html
@@ -404,22 +404,22 @@ $(document).ready(function() { init_codefold(0); });
override async ValueTask< MonitorAction > HandleMonitorWakeup(MonitorActivationReason reason, CancellationToken cancellationToken)
bool gracefulRebootRequired
If the server is set to gracefully reboot due to a pending dmb or settings change.
override? ISessionController GetActiveController()
-Base class for IWatchdogs.
-readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
-async ValueTask ReattachFailure(CancellationToken cancellationToken)
Call from InitController(ValueTask, ReattachInformation, CancellationToken) when a reattach operation...
-readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-async ValueTask CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
-readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-WatchdogStatus Status
The current WatchdogStatus.
-readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
-DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
-async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
-async ValueTask DisposeAndNullControllers(CancellationToken cancellationToken)
Wrapper for DisposeAndNullControllersImpl under a locked context.
-long? SessionId
An incrementing ID for representing current server execution.
-IChatManager Chat
The IChatManager for the WatchdogBase.
-async ValueTask HandleEventImpl(EventType eventType, IEnumerable< string > parameters, bool relayToSession, CancellationToken cancellationToken)
Handle a given eventType without re-throwing errors.
+Base class for IWatchdogs.
+readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+async ValueTask ReattachFailure(CancellationToken cancellationToken)
Call from InitController(ValueTask, ReattachInformation, CancellationToken) when a reattach operation...
+readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+async ValueTask CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
+readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+WatchdogStatus Status
The current WatchdogStatus.
+readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
+async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
+async ValueTask DisposeAndNullControllers(CancellationToken cancellationToken)
Wrapper for DisposeAndNullControllersImpl under a locked context.
+long? SessionId
An incrementing ID for representing current server execution.
+IChatManager Chat
The IChatManager for the WatchdogBase.
+async ValueTask HandleEventImpl(EventType eventType, IEnumerable< string > parameters, bool relayToSession, CancellationToken cancellationToken)
Handle a given eventType without re-throwing errors.
For managing connected chat services.
void QueueWatchdogMessage(string message)
Queue a chat message to configured watchdog channels.
diff --git a/_posix_watchdog_8cs_source.html b/_posix_watchdog_8cs_source.html
index b842ecd9d8..2135452622 100644
--- a/_posix_watchdog_8cs_source.html
+++ b/_posix_watchdog_8cs_source.html
@@ -169,14 +169,14 @@ $(document).ready(function() { init_codefold(0); });
PosixWatchdog(IChatManager chat, ISessionControllerFactory sessionControllerFactory, IDmbFactory dmbFactory, ISessionPersistor sessionPersistor, IJobManager jobManager, IServerControl serverControl, IAsyncDelayer asyncDelayer, IIOManager diagnosticsIOManager, IEventConsumer eventConsumer, IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory, IIOManager gameIOManager, IFilesystemLinkFactory linkFactory, ILogger< PosixWatchdog > logger, DreamDaemonLaunchParameters initialLaunchParameters, Api.Models.Instance instance, GeneralConfiguration generalConfiguration, bool autoStart)
Initializes a new instance of the PosixWatchdog class.
override SwappableDmbProvider CreateSwappableDmbProvider(IDmbProvider dmbProvider)
override ValueTask ApplyInitialDmb(CancellationToken cancellationToken)
-readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
-readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
-IIOManager GameIOManager
The IIOManager for the WatchdogBase pointing to the Game directory.
-DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
+readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+IIOManager GameIOManager
The IIOManager for the WatchdogBase pointing to the Game directory.
+DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
General configuration options.
For managing connected chat services.
Factory for IDmbProviders.
diff --git a/_tgstation_8_server_8_host_8_service_2_program_8cs_source.html b/_tgstation_8_server_8_host_8_service_2_program_8cs_source.html
index e7df52d2b1..f1e7edb767 100644
--- a/_tgstation_8_server_8_host_8_service_2_program_8cs_source.html
+++ b/_tgstation_8_server_8_host_8_service_2_program_8cs_source.html
@@ -231,102 +231,101 @@ $(document).ready(function() { init_codefold(0); });
191 installer.Context =
new InstallContext(
192 Path.Combine(programDataDirectory, $
"tgs-install-{Guid.NewGuid()}.log"),
-
-
- 195 $
"assemblypath=\"{exePath}\"{(String.IsNullOrWhiteSpace(PassthroughArgs) ? String.Empty : $" -p=\
"{PassthroughArgs}\"")}
",
-
- 197 installer.Description = $"{Server.Common.Constants.CanonicalPackageName} running as a Windows service.
";
- 198 installer.DisplayName = Server.Common.Constants.CanonicalPackageName;
- 199 installer.StartType = ServiceStartMode.Automatic;
- 200 installer.ServicesDependedOn = new string[] { "Tcpip
", "Dhcp
", "Dnscache
" };
- 201 installer.ServiceName = ServerService.Name;
- 202 installer.Parent = processInstaller;
-
- 204 var state = new ListDictionary();
-
-
- 207 installer.Install(state);
-
- 209 installer.Commit(state);
-
-
-
- 213 installer.Rollback(state);
-
-
-
-
- 222 bool RunServiceInstall()
-
- 224 // First check if the service already exists
- 225 bool serviceStopped = false;
- 226 if (Force || !WindowsServiceHelpers.IsWindowsService())
- 227 foreach (ServiceController sc in ServiceController.GetServices())
-
-
- 230 var serviceName = sc.ServiceName;
- 231 if (serviceName == ServerService.Name || serviceName == "tgstation-server-4
")
-
- 233 NativeMethods.DialogResult result = !Force
- 234 ? NativeMethods.MessageBox(
-
- 236 $"You already have another TGS service installed ({sc.ServiceName}). Would you like to uninstall it now? Pressing \
"No\" will cancel this install.",
-
- 238 NativeMethods.MessageBoxButtons.YesNo)
- 239 : NativeMethods.DialogResult.Yes;
- 240 if (result != NativeMethods.DialogResult.Yes)
-
-
-
-
-
-
- 247 InvokeSC(sc.ServiceName);
-
-
-
-
-
- 253 return serviceStopped;
-
-
- 260 void RestartService(ServiceController serviceController)
-
- 262 if (serviceController.Status != ServiceControllerStatus.Running)
-
-
-
-
-
-
- 269 serviceController.ExecuteCommand(serviceControllerCommand!.Value);
- 270 serviceController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30));
- 271 if (serviceController.Status != ServiceControllerStatus.Stopped)
-
-
-
-
-
- 277 serviceController.Stop();
- 278 serviceController.WaitForStatus(ServiceControllerStatus.Stopped);
-
-
-
- 287 async ValueTask RunConfigure(CancellationToken cancellationToken)
-
- 289 using var loggerFactory = LoggerFactory.Create(builder =>
-
-
- 292 builder.AddConsole();
-
-
-
- 296 await watchdog.
RunAsync(
true, GetPassthroughArgs(), cancellationToken);
-
-
- 303 string[] GetPassthroughArgs() => PassthroughArgs?.Split(
' ', StringSplitOptions.RemoveEmptyEntries) ?? Array.Empty<
string>();
-
-
+
+ 194 $
"assemblypath=\"{exePath}\"{(String.IsNullOrWhiteSpace(PassthroughArgs) ? String.Empty : $" -p=\
"{PassthroughArgs}\"")}
",
+
+ 196 installer.Description = $"{
Server.Common.Constants.CanonicalPackageName} running as a Windows service.
";
+ 197 installer.DisplayName = Server.Common.Constants.CanonicalPackageName;
+ 198 installer.StartType = ServiceStartMode.Automatic;
+ 199 installer.ServicesDependedOn = new string[] { "Tcpip
", "Dhcp
", "Dnscache
" };
+ 200 installer.ServiceName = ServerService.Name;
+ 201 installer.Parent = processInstaller;
+
+ 203 var state = new ListDictionary();
+
+
+ 206 installer.Install(state);
+
+ 208 installer.Commit(state);
+
+
+
+ 212 installer.Rollback(state);
+
+
+
+
+ 221 bool RunServiceInstall()
+
+ 223 // First check if the service already exists
+ 224 bool serviceStopped = false;
+ 225 if (Force || !WindowsServiceHelpers.IsWindowsService())
+ 226 foreach (ServiceController sc in ServiceController.GetServices())
+
+
+ 229 var serviceName = sc.ServiceName;
+ 230 if (serviceName == ServerService.Name || serviceName == "tgstation-server-4
")
+
+ 232 NativeMethods.DialogResult result = !Force
+ 233 ? NativeMethods.MessageBox(
+
+ 235 $"You already have another TGS service installed ({sc.ServiceName}). Would you like to uninstall it now? Pressing \
"No\" will cancel this install.",
+
+ 237 NativeMethods.MessageBoxButtons.YesNo)
+ 238 : NativeMethods.DialogResult.Yes;
+ 239 if (result != NativeMethods.DialogResult.Yes)
+
+
+
+
+
+
+ 246 InvokeSC(sc.ServiceName);
+
+
+
+
+
+ 252 return serviceStopped;
+
+
+ 259 void RestartService(ServiceController serviceController)
+
+ 261 if (serviceController.Status != ServiceControllerStatus.Running)
+
+
+
+
+
+
+ 268 serviceController.ExecuteCommand(serviceControllerCommand!.Value);
+ 269 serviceController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30));
+ 270 if (serviceController.Status != ServiceControllerStatus.Stopped)
+
+
+
+
+
+ 276 serviceController.Stop();
+ 277 serviceController.WaitForStatus(ServiceControllerStatus.Stopped);
+
+
+
+ 286 async ValueTask RunConfigure(CancellationToken cancellationToken)
+
+ 288 using var loggerFactory = LoggerFactory.Create(builder =>
+
+
+ 291 builder.AddConsole();
+
+
+
+ 295 await watchdog.
RunAsync(
true, GetPassthroughArgs(), cancellationToken);
+
+
+ 302 string[] GetPassthroughArgs() => PassthroughArgs?.Split(
' ', StringSplitOptions.RemoveEmptyEntries) ?? Array.Empty<
string>();
+
+
Values able to be passed via the update file path.
static ? int GetServiceCommandId(string command)
Gets the int value of a given command .
const string CommandDetachingShutdown
Stops the server ASAP, detaching the watchdog for any running instances.
diff --git a/_watchdog_base_8cs_source.html b/_watchdog_base_8cs_source.html
index 1fdb8fbb4d..812a9b3715 100644
--- a/_watchdog_base_8cs_source.html
+++ b/_watchdog_base_8cs_source.html
@@ -84,1122 +84,1121 @@ $(document).ready(function() { init_codefold(0); });
Go to the documentation of this file.
-
-
-
-
-
7using BetterWin32Errors;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
35#pragma warning disable CA1506
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
34#pragma warning disable CA1506
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
263 Logger.LogTrace(
"Created watchdog");
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
262 Logger.LogTrace(
"Created watchdog");
+
-
-
-
-
-
269 Logger.LogTrace(
"Disposing...");
-
-
-
-
-
-
-
-
+
+
+
+
+
268 Logger.LogTrace(
"Disposing...");
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
312 Text =
"TGS: Server offline!",
-
-
-
-
-
-
-
-
320 Text =
"TGS: Bad topic exchange!",
-
-
-
-
-
-
326 Text =
"TGS: Bad topic response!",
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
311 Text =
"TGS: Server offline!",
+
+
+
+
+
+
+
+
319 Text =
"TGS: Bad topic exchange!",
+
+
+
+
+
+
325 Text =
"TGS: Bad topic response!",
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
374 Logger.LogTrace(
"Begin Restart. Graceful: {gracefulFlag}",
graceful);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
388 Logger.LogWarning(
"Unable to send reboot state change event!");
-
-
+
+
+
+
+
+
+
+
373 Logger.LogTrace(
"Begin Restart. Graceful: {gracefulFlag}",
graceful);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
387 Logger.LogWarning(
"Unable to send reboot state change event!");
+
+
-
-
-
-
-
-
-
-
-
-
400 var job = Models.Job.Create(
-
-
402 ?
JobCode.StartupWatchdogReattach
-
403 :
JobCode.StartupWatchdogLaunch,
-
-
-
-
-
-
-
-
411 if (
core?.Watchdog !=
this)
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
399 var job = Models.Job.Create(
+
+
401 ?
JobCode.StartupWatchdogReattach
+
402 :
JobCode.StartupWatchdogLaunch,
+
+
+
+
+
+
+
+
410 if (
core?.Watchdog !=
this)
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
442 Logger.LogDebug(
"Waiting for server to gracefully shut down.");
-
-
-
-
446 Logger.LogTrace(
"Graceful shutdown requested but server is already offline.");
-
-
-
-
-
-
-
-
-
455 Logger.LogTrace(
"Not sending detach chat message as status is: {status}",
Status);
-
+
+
+
+
+
+
+
+
+
+
+
441 Logger.LogDebug(
"Waiting for server to gracefully shut down.");
+
+
+
+
445 Logger.LogTrace(
"Graceful shutdown requested but server is already offline.");
+
+
+
+
+
+
+
+
+
454 Logger.LogTrace(
"Not sending detach chat message as status is: {status}",
Status);
+
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
476 Logger.LogInformation(
"Attempted broadcast failed, no active server!");
-
-
-
-
-
-
482 Logger.LogInformation(
"Attempted broadcast failed, no DMAPI!");
-
-
-
-
-
-
-
-
490 "Attempted broadcast failed, insufficient interop version: {interopVersion}. Requires {minimumRequiredVersion}!",
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
475 Logger.LogInformation(
"Attempted broadcast failed, no active server!");
+
+
+
+
+
+
481 Logger.LogInformation(
"Attempted broadcast failed, no DMAPI!");
+
+
+
+
+
+
+
+
489 "Attempted broadcast failed, insufficient interop version: {interopVersion}. Requires {minimumRequiredVersion}!",
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
554 Logger.LogTrace(
"Begin LaunchImplNoLock");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
584 Logger.LogTrace(
ex,
"Controller initialization cancelled!");
-
-
-
-
-
589 Logger.LogWarning(
e,
"Failed to start watchdog!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
610 Logger.LogTrace(
ex,
"Announcement task canceled!");
-
-
-
-
614 Logger.LogInformation(
"Controller(s) initialized successfully");
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
553 Logger.LogTrace(
"Begin LaunchImplNoLock");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
583 Logger.LogTrace(
ex,
"Controller initialization cancelled!");
+
+
+
+
+
588 Logger.LogWarning(
e,
"Failed to start watchdog!");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
609 Logger.LogTrace(
ex,
"Announcement task canceled!");
+
+
+
+
613 Logger.LogInformation(
"Controller(s) initialized successfully");
+
+
+
+
+
+
+
-
-
-
-
-
629 Logger.LogTrace(
"StopMonitor");
-
-
-
-
-
-
635 Logger.LogTrace(
"Stopped Monitor");
-
-
-
-
-
+
+
+
+
+
628 Logger.LogTrace(
"StopMonitor");
+
+
+
+
+
+
634 Logger.LogTrace(
"Stopped Monitor");
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
657 new JobException(
$"{serverName} failed to start: {launchResult}"));
-
-
-
-
661 new JobException(
$"{serverName} timed out on startup: {ActiveLaunchParameters.StartupTimeout!.Value}s"));
-
+
+
+
+
+
+
+
+
+
+
+
656 new JobException(
$"{serverName} failed to start: {launchResult}"));
+
+
+
+
660 new JobException(
$"{serverName} timed out on startup: {ActiveLaunchParameters.StartupTimeout!.Value}s"));
+
-
-
-
-
-
-
-
-
-
675 const string FailReattachMessage =
"Unable to properly reattach to server! Restarting watchdog...";
-
-
-
-
-
+
+
+
+
+
+
+
+
+
674 const string FailReattachMessage =
"Unable to properly reattach to server! Restarting watchdog...";
+
+
+
+
+
-
-
-
-
-
-
-
695 Logger.LogTrace(
"DisposeAndNullControllers");
-
-
-
-
-
-
-
+
+
+
+
+
+
+
694 Logger.LogTrace(
"DisposeAndNullControllers");
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
730 Logger.LogTrace(
"Same compile job, not sending deployment event");
-
-
-
-
-
-
-
-
-
-
-
-
742 GameIOManager.ResolvePath(newCompileJob.DirectoryName!.Value.ToString()),
-
-
-
-
-
-
-
-
-
-
-
753 Logger.LogWarning(
ex,
"Failed to apply remote deployment!");
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
729 Logger.LogTrace(
"Same compile job, not sending deployment event");
+
+
+
+
+
+
+
+
+
+
+
+
741 GameIOManager.ResolvePath(newCompileJob.DirectoryName!.Value.ToString()),
+
+
+
+
+
+
+
+
+
+
+
752 Logger.LogWarning(
ex,
"Failed to apply remote deployment!");
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
779 Logger.LogError(
ex,
"Suppressing exception triggered by event!");
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
778 Logger.LogError(
ex,
"Suppressing exception triggered by event!");
+
+
-
-
-
-
-
790 Logger.LogTrace(
"Monitor restart!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
804 Logger.LogDebug(
"Relaunch successful, resuming monitor...");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
818 TimeSpan.FromHours(1).TotalSeconds);
-
-
-
821 $"Failed to restart (Attempt: {retryAttempts}), retrying in {retryDelay}s...");
-
-
-
-
-
-
+
+
+
+
+
789 Logger.LogTrace(
"Monitor restart!");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
803 Logger.LogDebug(
"Relaunch successful, resuming monitor...");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
817 TimeSpan.FromHours(1).TotalSeconds);
+
+
+
820 $"Failed to restart (Attempt: {retryAttempts}), retrying in {retryDelay}s...");
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
841 Logger.LogDebug(
"Found new CompileJob without waiting");
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
840 Logger.LogDebug(
"Found new CompileJob without waiting");
+
+
+
+
+
-
-
853#pragma warning disable CA1502
-
-
-
-
856 Logger.LogTrace(
"Entered MonitorLifetimes");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
945 Logger.LogError(
"Controller was null on monitor wakeup! Attempting restart...");
-
-
-
-
-
950 Logger.LogTrace(
"Monitor activated");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1020 "Monitor crashed! Iteration: {iteration}",
-
-
-
-
-
-
-
1027 $"Monitor crashed, this should NEVER happen! Please report this, full details in logs! {nextActionMessage}. Error: {e.Message}");
-
-
-
-
-
-
-
-
-
1036 Logger.LogDebug(
"Server seems to be okay, not restarting");
-
-
-
-
-
-
-
-
-
-
-
-
-
1049 Logger.LogDebug(
"Monitor cancelled");
-
-
-
-
1053 Logger.LogTrace(
"Detaching server...");
-
-
-
-
-
1058 Logger.LogError(
"Controller was null on monitor shutdown!");
-
-
-
-
-
-
-
-
1066 Logger.LogTrace(
"Monitor exiting...");
-
+
+
852#pragma warning disable CA1502
+
+
+
+
855 Logger.LogTrace(
"Entered MonitorLifetimes");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
944 Logger.LogError(
"Controller was null on monitor wakeup! Attempting restart...");
+
+
+
+
+
949 Logger.LogTrace(
"Monitor activated");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1019 "Monitor crashed! Iteration: {iteration}",
+
+
+
+
+
+
+
1026 $"Monitor crashed, this should NEVER happen! Please report this, full details in logs! {nextActionMessage}. Error: {e.Message}");
+
+
+
+
+
+
+
+
+
1035 Logger.LogDebug(
"Server seems to be okay, not restarting");
+
+
+
+
+
+
+
+
+
+
+
+
+
1048 Logger.LogDebug(
"Monitor cancelled");
+
+
+
+
1052 Logger.LogTrace(
"Detaching server...");
+
+
+
+
+
1057 Logger.LogError(
"Controller was null on monitor shutdown!");
+
+
+
+
+
+
+
+
1065 Logger.LogTrace(
"Monitor exiting...");
+
-
1068#pragma warning restore CA1502
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1107 Logger.LogTrace(
"Graceful termination requested");
-
-
-
1110 Logger.LogTrace(
"Could not gracefully terminate as there is no active controller!");
-
+
1067#pragma warning restore CA1502
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1106 Logger.LogTrace(
"Graceful termination requested");
+
+
+
1109 Logger.LogTrace(
"Could not gracefully terminate as there is no active controller!");
+
-
-
-
-
-
1120 Logger.LogTrace(
"Sending health check to active server...");
-
-
-
-
-
-
-
-
-
-
-
-
-
1133 Logger.LogDebug(
"DEFCON 4: Game server missed first health check!");
-
-
-
1136 const string message2 =
"DEFCON 3: Game server has missed 2 health checks!";
-
-
-
-
-
-
-
-
1144 const string logTemplate1 =
"DEFCON 2: Game server has missed 3 health checks! If it does not respond to the next one, the watchdog will {actionToTake}!";
-
-
-
-
-
-
-
-
-
-
1154 ?
"Shutting down due to graceful termination request"
-
-
1156 const string logTemplate2 =
"DEFCON 1: Four health checks have been missed! {actionTaken}...";
-
-
-
-
-
-
-
-
-
-
1166 Logger.LogDebug(
"DumpOnHealthCheckRestart enabled.");
-
-
-
-
-
-
-
1173 Logger.LogWarning(
ex,
"Creating dump failed!");
-
-
-
-
1177 Logger.LogWarning(
ex,
"Creating dump failed!");
-
-
-
-
1181 Logger.LogTrace(
"DumpOnHealthCheckRestart disabled.");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
1119 Logger.LogTrace(
"Sending health check to active server...");
+
+
+
+
+
+
+
+
+
+
+
+
+
1132 Logger.LogDebug(
"DEFCON 4: Game server missed first health check!");
+
+
+
1135 const string message2 =
"DEFCON 3: Game server has missed 2 health checks!";
+
+
+
+
+
+
+
+
1143 const string logTemplate1 =
"DEFCON 2: Game server has missed 3 health checks! If it does not respond to the next one, the watchdog will {actionToTake}!";
+
+
+
+
+
+
+
+
+
+
1153 ?
"Shutting down due to graceful termination request"
+
+
1155 const string logTemplate2 =
"DEFCON 1: Four health checks have been missed! {actionTaken}...";
+
+
+
+
+
+
+
+
+
+
1165 Logger.LogDebug(
"DumpOnHealthCheckRestart enabled.");
+
+
+
+
+
+
+
1172 Logger.LogWarning(
ex,
"Creating dump failed!");
+
+
+
+
1176 Logger.LogWarning(
ex,
"Creating dump failed!");
+
+
+
+
1180 Logger.LogTrace(
"DumpOnHealthCheckRestart disabled.");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
1205 if (
result?.ChatResponses !=
null)
-
-
-
-
-
-
1211 if (response.ChannelIds == null)
-
-
1213 if (!warnedMissingChannelIds)
-
-
1215 Logger.LogWarning(
"DMAPI response contains null channelIds!");
-
1216 warnedMissingChannelIds = true;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
1204 if (
result?.ChatResponses !=
null)
+
+
+
+
+
+
1210 if (response.ChannelIds == null)
+
+
1212 if (!warnedMissingChannelIds)
+
+
1214 Logger.LogWarning(
"DMAPI response contains null channelIds!");
+
1215 warnedMissingChannelIds = true;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
1251 if (
session?.Lifetime.IsCompleted !=
false)
-
-
-
-
-
-
1257 diagnosticsIOManager.ConcatPath(
-
-
1259 $"DreamDaemon-{DateTimeOffset.UtcNow.ToFileStamp()}"));
-
-
-
-
-
1264 dumpFileName =
$"{dumpFileNameTemplate} ({++iteration}){dumpFileExtension}";
-
-
-
-
-
1269 if (
session.Lifetime.IsCompleted)
-
-
-
1272 Logger.LogInformation(
"Dumping session to {dumpFileName}...",
dumpFileName);
-
-
+
+
+
+
+
+
+
+
1250 if (
session?.Lifetime.IsCompleted !=
false)
+
+
+
+
+
+
1256 diagnosticsIOManager.ConcatPath(
+
+
1258 $"DreamDaemon-{DateTimeOffset.UtcNow.ToFileStamp()}"));
+
+
+
+
+
1263 dumpFileName =
$"{dumpFileNameTemplate} ({++iteration}){dumpFileExtension}";
+
+
+
+
+
1268 if (
session.Lifetime.IsCompleted)
+
+
+
1271 Logger.LogInformation(
"Dumping session to {dumpFileName}...",
dumpFileName);
+
+
-
+
-
+
EngineType? Engine
The EngineType.
virtual ? long Id
The ID of the entity.
@@ -1229,67 +1228,67 @@ $(document).ready(function() { init_codefold(0); });
async ValueTask< ReattachInformation?> Load(CancellationToken cancellationToken)
Load a saved ReattachInformation.A ValueTask<TResult> resulting in the stored ReattachInformation if ...
ValueTask Clear(CancellationToken cancellationToken)
Clear any stored ReattachInformation.A ValueTask representing the running operation.
-
Base class for IWatchdogs.
-
async ValueTask HandleRestart(Version? updateVersion, bool handlerMayDelayShutdownWithExtremelyLongRunningTasks, CancellationToken cancellationToken)
Handle a restart of the server.A ValueTask representing the running operation.
-
async ValueTask< bool > Broadcast(string message, CancellationToken cancellationToken)
Send a broadcast message to the DMAPI.A ValueTask<TResult> resulting in true if the broadcast succee...
-
async ValueTask< MonitorAction > HandleHealthCheck(CancellationToken cancellationToken)
Handles a watchdog health check.
+
Base class for IWatchdogs.
+
async ValueTask HandleRestart(Version? updateVersion, bool handlerMayDelayShutdownWithExtremelyLongRunningTasks, CancellationToken cancellationToken)
Handle a restart of the server.A ValueTask representing the running operation.
+
async ValueTask< bool > Broadcast(string message, CancellationToken cancellationToken)
Send a broadcast message to the DMAPI.A ValueTask<TResult> resulting in true if the broadcast succee...
+
async ValueTask< MonitorAction > HandleHealthCheck(CancellationToken cancellationToken)
Handles a watchdog health check.
ISessionController? GetActiveController()
Get the active ISessionController.
-
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-
WatchdogBase(IChatManager chat, ISessionControllerFactory sessionControllerFactory, IDmbFactory dmbFactory, ISessionPersistor sessionPersistor, IJobManager jobManager, IServerControl serverControl, IAsyncDelayer asyncDelayer, IIOManager diagnosticsIOManager, IEventConsumer eventConsumer, IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory, IIOManager gameIOManager, ILogger< WatchdogBase > logger, DreamDaemonLaunchParameters initialLaunchParameters, Api.Models.Instance metadata, bool autoStart)
Initializes a new instance of the WatchdogBase class.
-
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
-
bool releaseServers
If the servers should be released instead of shutdown.
-
async ValueTask ReattachFailure(CancellationToken cancellationToken)
Call from InitController(ValueTask, ReattachInformation, CancellationToken) when a reattach operation...
-
async ValueTask CreateDumpNoLock(CancellationToken cancellationToken)
Attempt to create a process dump for the game server. Requires a lock on synchronizationSemaphore.
-
Models.? CompileJob ActiveCompileJob
Retrieves the Models.CompileJob currently running on the server.
-
DreamDaemonLaunchParameters? LastLaunchParameters
The DreamDaemonLaunchParameters the active server is using.This may not be the exact same as ActiveLa...
-
DateTimeOffset? LaunchTime
When the current server executions was started.
-
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-
async ValueTask Terminate(bool graceful, CancellationToken cancellationToken)
Stops the watchdog.A ValueTask representing the running operation.
-
async ValueTask CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
-
readonly Api.Models.Instance metadata
The Api.Models.Instance for the WatchdogBase.
-
bool AlphaIsActive
If the alpha server is the active server.
-
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-
bool disposed
If the WatchdogBase has been DisposeAsync'd.
-
readonly SemaphoreSlim controllerDisposeSemaphore
SemaphoreSlim used for DisposeAndNullControllers.
-
WatchdogStatus Status
The current WatchdogStatus.
+
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+
WatchdogBase(IChatManager chat, ISessionControllerFactory sessionControllerFactory, IDmbFactory dmbFactory, ISessionPersistor sessionPersistor, IJobManager jobManager, IServerControl serverControl, IAsyncDelayer asyncDelayer, IIOManager diagnosticsIOManager, IEventConsumer eventConsumer, IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory, IIOManager gameIOManager, ILogger< WatchdogBase > logger, DreamDaemonLaunchParameters initialLaunchParameters, Api.Models.Instance metadata, bool autoStart)
Initializes a new instance of the WatchdogBase class.
+
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+
bool releaseServers
If the servers should be released instead of shutdown.
+
async ValueTask ReattachFailure(CancellationToken cancellationToken)
Call from InitController(ValueTask, ReattachInformation, CancellationToken) when a reattach operation...
+
async ValueTask CreateDumpNoLock(CancellationToken cancellationToken)
Attempt to create a process dump for the game server. Requires a lock on synchronizationSemaphore.
+
Models.? CompileJob ActiveCompileJob
Retrieves the Models.CompileJob currently running on the server.
+
DreamDaemonLaunchParameters? LastLaunchParameters
The DreamDaemonLaunchParameters the active server is using.This may not be the exact same as ActiveLa...
+
DateTimeOffset? LaunchTime
When the current server executions was started.
+
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+
async ValueTask Terminate(bool graceful, CancellationToken cancellationToken)
Stops the watchdog.A ValueTask representing the running operation.
+
async ValueTask CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
+
readonly Api.Models.Instance metadata
The Api.Models.Instance for the WatchdogBase.
+
bool AlphaIsActive
If the alpha server is the active server.
+
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+
bool disposed
If the WatchdogBase has been DisposeAsync'd.
+
readonly SemaphoreSlim controllerDisposeSemaphore
SemaphoreSlim used for DisposeAndNullControllers.
+
WatchdogStatus Status
The current WatchdogStatus.
ValueTask< MonitorAction > HandleMonitorWakeup(MonitorActivationReason activationReason, CancellationToken cancellationToken)
Handles the actions to take when the monitor has to "wake up".
-
CancellationTokenSource? monitorCts
The CancellationTokenSource for the monitor loop.
-
Task? monitorTask
The Task running the monitor loop.
-
async ValueTask DisposeAsync()
-
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-
readonly SemaphoreSlim synchronizationSemaphore
The SemaphoreSlim for the WatchdogBase.
-
async ValueTask Restart(bool graceful, CancellationToken cancellationToken)
Restarts the watchdog.A ValueTask representing the running operation.
-
long? MemoryUsage
Gets the memory usage of the game server in bytes.
-
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
-
async ValueTask< MessageContent > HandleChatCommand(string commandName, string arguments, ChatUser sender, CancellationToken cancellationToken)
Handle a chat command.A ValueTask<TResult> resulting in the MessageContent text to send back.
+
CancellationTokenSource? monitorCts
The CancellationTokenSource for the monitor loop.
+
Task? monitorTask
The Task running the monitor loop.
+
async ValueTask DisposeAsync()
+
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+
readonly SemaphoreSlim synchronizationSemaphore
The SemaphoreSlim for the WatchdogBase.
+
async ValueTask Restart(bool graceful, CancellationToken cancellationToken)
Restarts the watchdog.A ValueTask representing the running operation.
+
long? MemoryUsage
Gets the memory usage of the game server in bytes.
+
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+
async ValueTask< MessageContent > HandleChatCommand(string commandName, string arguments, ChatUser sender, CancellationToken cancellationToken)
Handle a chat command.A ValueTask<TResult> resulting in the MessageContent text to send back.
ValueTask InitController(ValueTask eventTask, ReattachInformation? reattachInfo, CancellationToken cancellationToken)
Starts all ISessionControllers.
-
async ValueTask CreateDump(CancellationToken cancellationToken)
Attempt to create a process dump for DreamDaemon.A ValueTask representing the running operation.
-
IIOManager GameIOManager
The IIOManager for the WatchdogBase pointing to the Game directory.
-
DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
-
uint? ClientCount
Last known client count queried from the DMAPI. Requires health checks to be enabled to populate.
-
async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
-
async ValueTask< bool > StopMonitor()
Stops MonitorLifetimes(CancellationToken). Doesn't kill the servers.
-
async ValueTask MonitorRestart(CancellationToken cancellationToken)
Attempt to restart the monitor from scratch.
-
async ValueTask Launch(CancellationToken cancellationToken)
Start the IWatchdog.A ValueTask representing the running operation.
-
async Task InitialCheckDmbUpdated(CompileJob currentCompileJob)
Check for a new IDmbProvider.
-
async ValueTask LaunchNoLock(bool startMonitor, bool announce, bool announceFailure, ReattachInformation? reattachInfo, CancellationToken cancellationToken)
Launches the watchdog.
-
async ValueTask DisposeAndNullControllers(CancellationToken cancellationToken)
Wrapper for DisposeAndNullControllersImpl under a locked context.
+
async ValueTask CreateDump(CancellationToken cancellationToken)
Attempt to create a process dump for DreamDaemon.A ValueTask representing the running operation.
+
IIOManager GameIOManager
The IIOManager for the WatchdogBase pointing to the Game directory.
+
DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
+
uint? ClientCount
Last known client count queried from the DMAPI. Requires health checks to be enabled to populate.
+
async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
+
async ValueTask< bool > StopMonitor()
Stops MonitorLifetimes(CancellationToken). Doesn't kill the servers.
+
async ValueTask MonitorRestart(CancellationToken cancellationToken)
Attempt to restart the monitor from scratch.
+
async ValueTask Launch(CancellationToken cancellationToken)
Start the IWatchdog.A ValueTask representing the running operation.
+
async Task InitialCheckDmbUpdated(CompileJob currentCompileJob)
Check for a new IDmbProvider.
+
async ValueTask LaunchNoLock(bool startMonitor, bool announce, bool announceFailure, ReattachInformation? reattachInfo, CancellationToken cancellationToken)
Launches the watchdog.
+
async ValueTask DisposeAndNullControllers(CancellationToken cancellationToken)
Wrapper for DisposeAndNullControllersImpl under a locked context.
ValueTask DisposeAndNullControllersImpl()
Call IDisposable.Dispose and null the fields for all ISessionControllers.
-
async ValueTask TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
Implementation of Terminate(bool, CancellationToken). Does not lock synchronizationSemaphore.
-
async ValueTask< bool > ChangeSettings(DreamDaemonLaunchParameters launchParameters, CancellationToken cancellationToken)
Changes the ActiveLaunchParameters. If currently running, may trigger a graceful restart....
-
void HandleChatResponses(TopicResponse? result)
Handle any TopicResponse.ChatResponses in a given topic result .
-
virtual async ValueTask ResetRebootState(CancellationToken cancellationToken)
Cancels pending graceful actions.A ValueTask representing the running operation.
-
async Task MonitorLifetimes(CancellationToken cancellationToken)
The main loop of the watchdog. Ayschronously waits for events to occur and then responds to them.
-
long? SessionId
An incrementing ID for representing current server execution.
-
async Task StartAsync(CancellationToken cancellationToken)
+
async ValueTask TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
Implementation of Terminate(bool, CancellationToken). Does not lock synchronizationSemaphore.
+
async ValueTask< bool > ChangeSettings(DreamDaemonLaunchParameters launchParameters, CancellationToken cancellationToken)
Changes the ActiveLaunchParameters. If currently running, may trigger a graceful restart....
+
void HandleChatResponses(TopicResponse? result)
Handle any TopicResponse.ChatResponses in a given topic result .
+
virtual async ValueTask ResetRebootState(CancellationToken cancellationToken)
Cancels pending graceful actions.A ValueTask representing the running operation.
+
async Task MonitorLifetimes(CancellationToken cancellationToken)
The main loop of the watchdog. Ayschronously waits for events to occur and then responds to them.
+
long? SessionId
An incrementing ID for representing current server execution.
+
async Task StartAsync(CancellationToken cancellationToken)
ValueTask InstanceRenamed(string newInstanceName, CancellationToken cancellationToken)
Called when the owning Instance is renamed.A ValueTask representing the running operation.
-
int healthChecksMissed
The number of hearbeats missed.
-
IChatManager Chat
The IChatManager for the WatchdogBase.
+
int healthChecksMissed
The number of hearbeats missed.
+
IChatManager Chat
The IChatManager for the WatchdogBase.
async Task StopAsync(CancellationToken cancellationToken)
-
readonly IRestartRegistration restartRegistration
The IRestartRegistration for the WatchdogBase.
-
async ValueTask HandleEventImpl(EventType eventType, IEnumerable< string > parameters, bool relayToSession, CancellationToken cancellationToken)
Handle a given eventType without re-throwing errors.
-
WatchdogStatus status
Backing field for Status.
-
volatile TaskCompletionSource activeParametersUpdated
TaskCompletionSource that completes when ActiveLaunchParameters are changed and we are running.
+
readonly IRestartRegistration restartRegistration
The IRestartRegistration for the WatchdogBase.
+
async ValueTask HandleEventImpl(EventType eventType, IEnumerable< string > parameters, bool relayToSession, CancellationToken cancellationToken)
Handle a given eventType without re-throwing errors.
+
WatchdogStatus status
Backing field for Status.
+
volatile TaskCompletionSource activeParametersUpdated
TaskCompletionSource that completes when ActiveLaunchParameters are changed and we are running.
Operation exceptions thrown from the context of a Models.Job.
diff --git a/_windows_filesystem_link_factory_8cs_source.html b/_windows_filesystem_link_factory_8cs_source.html
index 8c5da4c5eb..bd5370e456 100644
--- a/_windows_filesystem_link_factory_8cs_source.html
+++ b/_windows_filesystem_link_factory_8cs_source.html
@@ -83,60 +83,59 @@ $(document).ready(function() { init_codefold(0); });
Go to the documentation of this file.
-
-
-
4using System.Threading.Tasks;
-
-
6using BetterWin32Errors;
-
-
-
-
-
-
-
-
-
-
-
21 public Task
CreateHardLink(
string targetPath,
string linkPath, CancellationToken cancellationToken)
-
22 =>
throw new NotSupportedException();
-
-
25 public Task
CreateSymbolicLink(
string targetPath,
string linkPath, CancellationToken cancellationToken) => Task.Factory.StartNew(
-
-
-
28 ArgumentNullException.ThrowIfNull(targetPath);
-
29 ArgumentNullException.ThrowIfNull(linkPath);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
46 cancellationToken.ThrowIfCancellationRequested();
-
-
48 throw new Win32Exception();
-
-
-
-
52 TaskScheduler.Current);
-
+
2using System.ComponentModel;
+
+
+
5using System.Threading.Tasks;
+
+
+
+
+
+
+
+
+
+
+
20 public Task
CreateHardLink(
string targetPath,
string linkPath, CancellationToken cancellationToken)
+
21 =>
throw new NotSupportedException();
+
+
24 public Task
CreateSymbolicLink(
string targetPath,
string linkPath, CancellationToken cancellationToken) => Task.Factory.StartNew(
+
+
+
27 ArgumentNullException.ThrowIfNull(targetPath);
+
28 ArgumentNullException.ThrowIfNull(linkPath);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
45 cancellationToken.ThrowIfCancellationRequested();
+
+
47 throw new Win32Exception();
+
+
+
+
51 TaskScheduler.Current);
+
-
+
IIOManager that resolves paths to Environment.CurrentDirectory.
const TaskCreationOptions BlockingTaskCreationOptions
The TaskCreationOptions used to spawn Tasks for potentially long running, blocking operations.
-
IFilesystemLinkFactory for windows systems.
+
IFilesystemLinkFactory for windows systems.
Task CreateSymbolicLink(string targetPath, string linkPath, CancellationToken cancellationToken)
Create a symbolic link.A Task representing the running operation.
-
bool SymlinkedDirectoriesAreDeletedAsFiles
If directory symlinks must be deleted as files would in the current environment.This is because Linux...
+
bool SymlinkedDirectoriesAreDeletedAsFiles
If directory symlinks must be deleted as files would in the current environment.This is because Linux...
Task CreateHardLink(string targetPath, string linkPath, CancellationToken cancellationToken)
Creates a hard link.A Task representing the running operation.
Native methods used by the code.
CreateSymbolicLinkFlags
See https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-createsymboliclinka#param...
diff --git a/_windows_network_prompt_reaper_8cs_source.html b/_windows_network_prompt_reaper_8cs_source.html
index 25e9d36960..f31eadcf03 100644
--- a/_windows_network_prompt_reaper_8cs_source.html
+++ b/_windows_network_prompt_reaper_8cs_source.html
@@ -84,178 +84,177 @@ $(document).ready(function() { init_codefold(0); });
Go to the documentation of this file.
2using System.Collections.Generic;
-
-
4using System.Runtime.InteropServices;
-
-
-
7using System.Threading.Tasks;
-
-
9using BetterWin32Errors;
-
-
11using Microsoft.Extensions.Hosting;
-
12using Microsoft.Extensions.Logging;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
39 readonly ILogger<WindowsNetworkPromptReaper>
logger;
-
-
-
-
-
-
-
54 var gcChildhandlesList = GCHandle.FromIntPtr(lParam);
-
-
56 if (gcChildhandlesList.Target ==
null)
-
-
-
59 var childHandles = (List<IntPtr>)gcChildhandlesList.Target;
-
60 childHandles.Add(hWnd);
-
-
-
+
3using System.ComponentModel;
+
+
5using System.Runtime.InteropServices;
+
+
+
8using System.Threading.Tasks;
+
+
10using Microsoft.Extensions.Hosting;
+
11using Microsoft.Extensions.Logging;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
38 readonly ILogger<WindowsNetworkPromptReaper>
logger;
+
+
+
+
+
+
+
53 var gcChildhandlesList = GCHandle.FromIntPtr(lParam);
+
+
55 if (gcChildhandlesList.Target ==
null)
+
+
+
58 var childHandles = (List<IntPtr>)gcChildhandlesList.Target;
+
59 childHandles.Add(hWnd);
+
+
+
-
-
-
-
-
72 var childHandles =
new List<IntPtr>();
-
73 var gcChildhandlesList = GCHandle.Alloc(childHandles);
-
-
-
76 var pointerChildHandlesList = GCHandle.ToIntPtr(gcChildhandlesList);
-
77 NativeMethods.EnumWindowProc childProc =
new(
EnumWindow);
-
-
-
-
-
82 gcChildhandlesList.Free();
-
-
-
-
+
+
+
+
+
71 var childHandles =
new List<IntPtr>();
+
72 var gcChildhandlesList = GCHandle.Alloc(childHandles);
+
+
+
75 var pointerChildHandlesList = GCHandle.ToIntPtr(gcChildhandlesList);
+
76 NativeMethods.EnumWindowProc childProc =
new(
EnumWindow);
+
+
+
+
+
81 gcChildhandlesList.Free();
+
+
+
+
-
-
-
-
-
-
96 this.logger =
logger ??
throw new ArgumentNullException(nameof(
logger));
-
-
-
+
+
+
+
+
+
95 this.logger =
logger ??
throw new ArgumentNullException(nameof(
logger));
+
+
+
-
-
-
-
-
104 ArgumentNullException.ThrowIfNull(process);
-
-
-
-
-
109 throw new InvalidOperationException(
"This process has already been registered for network prompt reaping!");
-
110 logger.LogTrace(
"Registering process {pid}...", process.
Id);
-
-
-
-
-
-
-
117 logger.LogTrace(
"Unregistering process {pid}...", process.
Id);
-
-
-
-
121 TaskScheduler.Current);
-
+
+
+
+
+
103 ArgumentNullException.ThrowIfNull(process);
+
+
+
+
+
108 throw new InvalidOperationException(
"This process has already been registered for network prompt reaping!");
+
109 logger.LogTrace(
"Registering process {pid}...", process.
Id);
+
+
+
+
+
+
+
116 logger.LogTrace(
"Unregistering process {pid}...", process.
Id);
+
+
+
+
120 TaskScheduler.Current);
+
-
-
-
125 protected override async Task
ExecuteAsync(CancellationToken cancellationToken)
-
-
127 logger.LogDebug(
"Starting network prompt reaper...");
-
-
-
130 while (!cancellationToken.IsCancellationRequested)
-
-
-
-
-
-
-
-
-
-
-
-
142 if (window == IntPtr.Zero)
-
-
-
-
-
-
-
-
-
151 logger.LogTrace(
"Identified \"Network Accessibility\" window in owned process {pid}", processId);
-
-
-
-
-
156 const int MaxLength = 10;
-
157 var stringBuilder =
new StringBuilder(MaxLength + 1);
-
-
-
-
161 logger.LogWarning(
new Win32Exception(),
"Error calling GetWindowText!");
-
-
-
-
165 var windowText = stringBuilder.ToString();
-
166 if (windowText ==
"Yes")
-
-
-
169 logger.LogTrace(
"Sending \"Yes\" button clicks...");
-
-
-
172 const int BM_CLICK = 0x00F5;
-
-
-
-
-
-
-
-
-
-
182 logger.LogDebug(
"Unable to find \"Yes\" button for \"Network Accessibility\" window in owned process {pid}!", processId);
-
-
-
185 catch (OperationCanceledException ex)
-
-
187 logger.LogTrace(ex,
"Cancelled!");
-
-
-
-
-
192 logger.LogTrace(
"Exiting network prompt reaper...");
-
-
+
+
+
124 protected override async Task
ExecuteAsync(CancellationToken cancellationToken)
+
+
126 logger.LogDebug(
"Starting network prompt reaper...");
+
+
+
129 while (!cancellationToken.IsCancellationRequested)
+
+
+
+
+
+
+
+
+
+
+
+
141 if (window == IntPtr.Zero)
+
+
+
+
+
+
+
+
+
150 logger.LogTrace(
"Identified \"Network Accessibility\" window in owned process {pid}", processId);
+
+
+
+
+
155 const int MaxLength = 10;
+
156 var stringBuilder =
new StringBuilder(MaxLength + 1);
+
+
+
+
160 logger.LogWarning(
new Win32Exception(),
"Error calling GetWindowText!");
+
+
+
+
164 var windowText = stringBuilder.ToString();
+
165 if (windowText ==
"Yes")
+
+
+
168 logger.LogTrace(
"Sending \"Yes\" button clicks...");
+
+
+
171 const int BM_CLICK = 0x00F5;
+
+
+
+
+
+
+
+
+
+
181 logger.LogDebug(
"Unable to find \"Yes\" button for \"Network Accessibility\" window in owned process {pid}!", processId);
+
+
+
184 catch (OperationCanceledException ex)
+
+
186 logger.LogTrace(ex,
"Cancelled!");
+
+
+
+
+
191 logger.LogTrace(
"Exiting network prompt reaper...");
+
+
-
+
-
+
Native methods used by the code.
static int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId)
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getwindowthreadprocessid.
@@ -263,17 +262,17 @@ $(document).ready(function() { init_codefold(0); });
static IntPtr FindWindow(string? lpClassName, string lpWindowName)
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-findwindoww.
static int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam)
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-sendmessage.
static int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount)
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getwindowtextw.
-
-
readonly ILogger< WindowsNetworkPromptReaper > logger
The ILogger for the WindowsNetworkPromptReaper.
-
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the WindowsNetworkPromptReaper.
-
void RegisterProcess(IProcess process)
Register a given process for network prompt reaping.
-
WindowsNetworkPromptReaper(IAsyncDelayer asyncDelayer, ILogger< WindowsNetworkPromptReaper > logger)
Initializes a new instance of the WindowsNetworkPromptReaper class.
-
const int SendMessageCount
Number of times to send the button click message. Should be at least 2 or it may fail to focus the wi...
-
static bool EnumWindow(IntPtr hWnd, IntPtr lParam)
Callback for NativeMethods.EnumChildWindows(IntPtr, NativeMethods.EnumWindowProc, IntPtr).
-
const int RecheckDelayMs
Check for prompts each time this amount of milliseconds pass.
-
static List< IntPtr > GetAllChildHandles(IntPtr mainWindow)
Get all the child windows handles of a given mainWindow .
-
override async Task ExecuteAsync(CancellationToken cancellationToken)
-
readonly List< IProcess > registeredProcesses
The list of IProcesss registered.
+
+
readonly ILogger< WindowsNetworkPromptReaper > logger
The ILogger for the WindowsNetworkPromptReaper.
+
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the WindowsNetworkPromptReaper.
+
void RegisterProcess(IProcess process)
Register a given process for network prompt reaping.
+
WindowsNetworkPromptReaper(IAsyncDelayer asyncDelayer, ILogger< WindowsNetworkPromptReaper > logger)
Initializes a new instance of the WindowsNetworkPromptReaper class.
+
const int SendMessageCount
Number of times to send the button click message. Should be at least 2 or it may fail to focus the wi...
+
static bool EnumWindow(IntPtr hWnd, IntPtr lParam)
Callback for NativeMethods.EnumChildWindows(IntPtr, NativeMethods.EnumWindowProc, IntPtr).
+
const int RecheckDelayMs
Check for prompts each time this amount of milliseconds pass.
+
static List< IntPtr > GetAllChildHandles(IntPtr mainWindow)
Get all the child windows handles of a given mainWindow .
+
override async Task ExecuteAsync(CancellationToken cancellationToken)
+
readonly List< IProcess > registeredProcesses
The list of IProcesss registered.
On Windows, DreamDaemon will show an unskippable prompt when using /world/proc/OpenPort()....
Task< int?> Lifetime
The Task<TResult> resulting in the exit code of the process or null if the process was detached.
Abstraction over a global::System.Diagnostics.Process.
diff --git a/_windows_process_features_8cs_source.html b/_windows_process_features_8cs_source.html
index f99d9710b1..08341f09cd 100644
--- a/_windows_process_features_8cs_source.html
+++ b/_windows_process_features_8cs_source.html
@@ -84,15 +84,15 @@ $(document).ready(function() { init_codefold(0); });
Go to the documentation of this file.
2using System.Collections.Generic;
-
3using System.Diagnostics;
-
-
-
6using System.Management;
-
7using System.Runtime.Versioning;
-
-
9using System.Threading.Tasks;
-
-
11using BetterWin32Errors;
+
3using System.ComponentModel;
+
4using System.Diagnostics;
+
+
+
7using System.Management;
+
8using System.Runtime.Versioning;
+
+
10using System.Threading.Tasks;
+
12using Microsoft.Extensions.Logging;
diff --git a/_windows_watchdog_8cs_source.html b/_windows_watchdog_8cs_source.html
index 7edab13208..c00a7989b5 100644
--- a/_windows_watchdog_8cs_source.html
+++ b/_windows_watchdog_8cs_source.html
@@ -170,13 +170,13 @@ $(document).ready(function() { init_codefold(0); });
A IDmbProvider that uses symlinks.
A IWatchdog that, instead of killing servers for updates, uses the wonders of filesystem links to swa...
IFilesystemLinkFactory LinkFactory
The IFilesystemLinkFactory for the AdvancedWatchdog.
-
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
-
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
-
IIOManager GameIOManager
The IIOManager for the WatchdogBase pointing to the Game directory.
+
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+
IIOManager GameIOManager
The IIOManager for the WatchdogBase pointing to the Game directory.
A variant of the AdvancedWatchdog that works on Windows systems.
WindowsWatchdog(IChatManager chat, ISessionControllerFactory sessionControllerFactory, IDmbFactory dmbFactory, ISessionPersistor sessionPersistor, IJobManager jobManager, IServerControl serverControl, IAsyncDelayer asyncDelayer, IIOManager diagnosticsIOManager, IEventConsumer eventConsumer, IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory, IIOManager gameIOManager, IFilesystemLinkFactory linkFactory, ILogger< WindowsWatchdog > logger, DreamDaemonLaunchParameters initialLaunchParameters, Api.Models.Instance instance, bool autoStart)
Initializes a new instance of the WindowsWatchdog class.
override SwappableDmbProvider CreateSwappableDmbProvider(IDmbProvider dmbProvider)
diff --git a/changelog.yml b/changelog.yml
index 5b18d007c4..05060befc6 100644
--- a/changelog.yml
+++ b/changelog.yml
@@ -183,8 +183,8 @@ Components:
InteropApi: 5.10.0
HostWatchdog: 1.6.0
NugetCommon: 7.0.0
- NugetApi: 16.3.0
- NugetClient: 19.3.0
+ NugetApi: 17.0.0
+ NugetClient: 20.0.0
WebControlPanel: 6.4.0
Changes:
- Descriptions:
@@ -220,6 +220,10 @@ Components:
- Released artifacts are now attested.
Author: Cyberboss
PullRequest: 2000
+ - Descriptions:
+ - Fixed the colouring of the icon for TGS on Windows.
+ Author: Cyberboss
+ PullRequest: 2028
Unreleased: true
- Version: 6.11.5
ComponentVersions:
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_engine_version.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_engine_version.html
index 11ebb8b627..6d241540b3 100644
--- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_engine_version.html
+++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_engine_version.html
@@ -714,7 +714,7 @@ Here is the caller graph for this function:
Definition at line 24 of file EngineVersion.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.ApplyInitialDmb(), Tgstation.Server.Host.Components.Engine.ByondInstallation.ByondInstallation(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CanUseSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Engine.EngineManager.CheckVersionParameter(), Tgstation.Server.Host.Components.Engine.EngineInstallerBase.CheckVersionValidity(), Tgstation.Server.Host.Components.Engine.DelegatingEngineInstaller.DelegateCall< TReturn >(), Tgstation.Server.Api.Models.EngineVersion.EngineVersion(), Tgstation.Server.Api.Models.EngineVersion.Equals(), Tgstation.Server.Host.Components.Chat.Commands.EngineCommand.Invoke(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Engine.OpenDreamInstallation.OpenDreamInstallation(), Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeCommand(), Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.SendUpdateMessage(), Tgstation.Server.Api.Models.EngineVersion.ToString(), and Tgstation.Server.Api.Models.EngineVersion.TryParse().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.ApplyInitialDmb(), Tgstation.Server.Host.Components.Engine.ByondInstallation.ByondInstallation(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CanUseSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Engine.EngineManager.CheckVersionParameter(), Tgstation.Server.Host.Components.Engine.EngineInstallerBase.CheckVersionValidity(), Tgstation.Server.Host.Components.Engine.DelegatingEngineInstaller.DelegateCall< TReturn >(), Tgstation.Server.Api.Models.EngineVersion.EngineVersion(), Tgstation.Server.Api.Models.EngineVersion.Equals(), Tgstation.Server.Host.Components.Chat.Commands.EngineCommand.Invoke(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Engine.OpenDreamInstallation.OpenDreamInstallation(), Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeCommand(), Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.SendUpdateMessage(), Tgstation.Server.Api.Models.EngineVersion.ToString(), and Tgstation.Server.Api.Models.EngineVersion.TryParse().
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html
index 5da94bd9bb..2d9ea42442 100644
--- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html
+++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html
@@ -192,7 +192,7 @@ Properties
Definition at line 13 of file EntityId.cs.
-
Referenced by Tgstation.Server.Host.Authority.LoginAuthority.AttemptLogin(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Jobs.JobService.CancelJob(), Tgstation.Server.Host.Controllers.ChatController.Create(), Tgstation.Server.Host.Controllers.RepositoryController.Create(), Tgstation.Server.Client.InstanceManagerClient.CreateClient(), Tgstation.Server.Host.Components.Deployment.DeploymentLockManager.CreateLock(), Tgstation.Server.Api.Models.UserName.CreateUserName< TResultType >(), Tgstation.Server.Host.Controllers.RepositoryController.Delete(), Tgstation.Server.Host.Controllers.InstancePermissionSetController.Delete(), Tgstation.Server.Host.Controllers.JobController.Delete(), Tgstation.Server.Host.Components.Deployment.DeploymentLockManager.DeploymentLockManager(), Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJobInternal(), Tgstation.Server.Host.Authority.UserAuthority.GetId(), Tgstation.Server.Host.Controllers.ChatController.GetId(), Tgstation.Server.Host.Controllers.InstancePermissionSetController.GetId(), Tgstation.Server.Host.Controllers.JobController.GetId(), Tgstation.Server.Host.Controllers.UserController.GetId(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Controllers.ApiController.HookExecuteAction(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController(), Tgstation.Server.Client.Components.InstanceClient.InstanceClient(), Tgstation.Server.Host.Models.Job.Job(), Tgstation.Server.Host.Models.Job.Job(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Controllers.ChatController.List(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PerformDmbSwap(), Tgstation.Server.Host.Controllers.DreamMakerController.Read(), Tgstation.Server.Host.Controllers.RepositoryController.Read(), Tgstation.Server.Client.Components.ConfigurationClient.Read(), Tgstation.Server.Host.Controllers.DreamDaemonController.ReadImpl(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), Tgstation.Server.Host.Controllers.RepositoryController.Reclone(), Tgstation.Server.Host.Jobs.JobService.RegisterOperation(), Tgstation.Server.Host.Jobs.JobService.RunJob(), Tgstation.Server.Client.Components.EngineClient.SetActiveVersion(), Tgstation.Server.Host.GraphQL.Mutations.UserMutations.SetCurrentOAuthConnections(), Tgstation.Server.Host.GraphQL.Mutations.UserMutations.SetCurrentUserPassword(), Tgstation.Server.Host.Models.ChatBot.ToApi(), Tgstation.Server.Host.Models.CompileJob.ToApi(), Tgstation.Server.Host.Models.Instance.ToApi(), Tgstation.Server.Host.Models.Job.ToApi(), Tgstation.Server.Host.Models.UserGroup.ToApi(), Tgstation.Server.Host.Controllers.ChatController.Update(), Tgstation.Server.Host.Controllers.DreamDaemonController.Update(), Tgstation.Server.Host.Controllers.DreamMakerController.Update(), Tgstation.Server.Host.Controllers.EngineController.Update(), Tgstation.Server.Host.Controllers.InstancePermissionSetController.Update(), Tgstation.Server.Host.Controllers.RepositoryController.Update(), Tgstation.Server.Host.Jobs.JobsHubGroupMapper.UserDisabled(), and Tgstation.Server.Client.Components.ConfigurationClient.Write().
+
Referenced by Tgstation.Server.Host.Authority.LoginAuthority.AttemptLogin(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Jobs.JobService.CancelJob(), Tgstation.Server.Host.Controllers.ChatController.Create(), Tgstation.Server.Host.Controllers.RepositoryController.Create(), Tgstation.Server.Client.InstanceManagerClient.CreateClient(), Tgstation.Server.Host.Components.Deployment.DeploymentLockManager.CreateLock(), Tgstation.Server.Api.Models.UserName.CreateUserName< TResultType >(), Tgstation.Server.Host.Controllers.RepositoryController.Delete(), Tgstation.Server.Host.Controllers.InstancePermissionSetController.Delete(), Tgstation.Server.Host.Controllers.JobController.Delete(), Tgstation.Server.Host.Components.Deployment.DeploymentLockManager.DeploymentLockManager(), Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJobInternal(), Tgstation.Server.Host.Authority.UserAuthority.GetId(), Tgstation.Server.Host.Controllers.ChatController.GetId(), Tgstation.Server.Host.Controllers.InstancePermissionSetController.GetId(), Tgstation.Server.Host.Controllers.JobController.GetId(), Tgstation.Server.Host.Controllers.UserController.GetId(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Controllers.ApiController.HookExecuteAction(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController(), Tgstation.Server.Client.Components.InstanceClient.InstanceClient(), Tgstation.Server.Host.Models.Job.Job(), Tgstation.Server.Host.Models.Job.Job(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Controllers.ChatController.List(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PerformDmbSwap(), Tgstation.Server.Host.Controllers.DreamMakerController.Read(), Tgstation.Server.Host.Controllers.RepositoryController.Read(), Tgstation.Server.Client.Components.ConfigurationClient.Read(), Tgstation.Server.Host.Controllers.DreamDaemonController.ReadImpl(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), Tgstation.Server.Host.Controllers.RepositoryController.Reclone(), Tgstation.Server.Host.Jobs.JobService.RegisterOperation(), Tgstation.Server.Host.Jobs.JobService.RunJob(), Tgstation.Server.Client.Components.EngineClient.SetActiveVersion(), Tgstation.Server.Host.GraphQL.Mutations.UserMutations.SetCurrentOAuthConnections(), Tgstation.Server.Host.GraphQL.Mutations.UserMutations.SetCurrentUserPassword(), Tgstation.Server.Host.Models.ChatBot.ToApi(), Tgstation.Server.Host.Models.CompileJob.ToApi(), Tgstation.Server.Host.Models.Instance.ToApi(), Tgstation.Server.Host.Models.Job.ToApi(), Tgstation.Server.Host.Models.UserGroup.ToApi(), Tgstation.Server.Host.Controllers.ChatController.Update(), Tgstation.Server.Host.Controllers.DreamDaemonController.Update(), Tgstation.Server.Host.Controllers.DreamMakerController.Update(), Tgstation.Server.Host.Controllers.EngineController.Update(), Tgstation.Server.Host.Controllers.InstancePermissionSetController.Update(), Tgstation.Server.Host.Controllers.RepositoryController.Update(), Tgstation.Server.Host.Jobs.JobsHubGroupMapper.UserDisabled(), and Tgstation.Server.Client.Components.ConfigurationClient.Write().
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html
index 098d95819f..7a06417ab9 100644
--- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html
+++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html
@@ -311,7 +311,7 @@ Properties
Definition at line 76 of file DreamDaemonLaunchParameters.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck().
@@ -340,7 +340,7 @@ Properties
Definition at line 69 of file DreamDaemonLaunchParameters.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
diff --git a/class_tgstation_1_1_server_1_1_common_1_1_extensions_1_1_value_task_extensions.html b/class_tgstation_1_1_server_1_1_common_1_1_extensions_1_1_value_task_extensions.html
index e3e36d7b24..b710cb3f68 100644
--- a/class_tgstation_1_1_server_1_1_common_1_1_extensions_1_1_value_task_extensions.html
+++ b/class_tgstation_1_1_server_1_1_common_1_1_extensions_1_1_value_task_extensions.html
@@ -165,7 +165,7 @@ Static Public Member Functions
118 }
-
Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanRegisteredCompileJob(), Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanUnusedCompileJobs(), Tgstation.Server.Host.Components.Deployment.DreamMaker.CleanupFailedCompile(), Tgstation.Server.Host.Swarm.SwarmService.CommitUpdate(), Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Client.ApiClient.DisposeAsync(), Tgstation.Server.Host.Security.IdentityCache.DisposeAsync(), Tgstation.Server.Host.Components.StaticFiles.Configuration.EnsureDirectories(), Tgstation.Server.Host.Components.StaticFiles.Configuration.ExecuteEventScripts(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Swarm.SwarmService.HealthCheckNodes(), Tgstation.Server.Host.Components.Engine.OpenDreamInstaller.Install(), Tgstation.Server.Host.Components.Engine.WindowsOpenDreamInstaller.Install(), Tgstation.Server.Host.Components.Engine.PosixByondInstaller.Install(), Tgstation.Server.Host.Components.Engine.WindowsByondInstaller.Install(), Tgstation.Server.Host.Components.InstanceManager.OfflineInstance(), Tgstation.Server.Host.Components.Deployment.Remote.BaseRemoteDeploymentManager.PostDeploymentComments(), Tgstation.Server.Host.Swarm.SwarmService.RemoteAbortUpdate(), Tgstation.Server.Host.Components.Chat.ChatManager.RemoveProviderChannels(), Tgstation.Server.Host.Server.RestartImpl(), Tgstation.Server.Client.ApiClient.RunRequest< TResult >(), Tgstation.Server.Host.Components.Chat.ChatManager.SendMessage(), Tgstation.Server.Host.Swarm.SwarmService.SendUpdatedServerListToNodes(), Tgstation.Server.Host.Swarm.SwarmService.Shutdown(), Tgstation.Server.Host.Components.Chat.ChatManager.StartAsync(), Tgstation.Server.Host.Components.Engine.EngineManager.StartAsync(), Tgstation.Server.Host.Components.InstanceManager.StopAsync(), Tgstation.Server.Host.Jobs.JobService.StopAsync(), Tgstation.Server.Host.Components.StaticFiles.Configuration.SymlinkStaticFilesTo(), and Tgstation.Server.Host.Controllers.InstanceController.Update().
+
Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanRegisteredCompileJob(), Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanUnusedCompileJobs(), Tgstation.Server.Host.Components.Deployment.DreamMaker.CleanupFailedCompile(), Tgstation.Server.Host.Swarm.SwarmService.CommitUpdate(), Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Client.ApiClient.DisposeAsync(), Tgstation.Server.Host.Security.IdentityCache.DisposeAsync(), Tgstation.Server.Host.Components.StaticFiles.Configuration.EnsureDirectories(), Tgstation.Server.Host.Components.StaticFiles.Configuration.ExecuteEventScripts(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Swarm.SwarmService.HealthCheckNodes(), Tgstation.Server.Host.Components.Engine.OpenDreamInstaller.Install(), Tgstation.Server.Host.Components.Engine.WindowsOpenDreamInstaller.Install(), Tgstation.Server.Host.Components.Engine.PosixByondInstaller.Install(), Tgstation.Server.Host.Components.Engine.WindowsByondInstaller.Install(), Tgstation.Server.Host.Components.InstanceManager.OfflineInstance(), Tgstation.Server.Host.Components.Deployment.Remote.BaseRemoteDeploymentManager.PostDeploymentComments(), Tgstation.Server.Host.Swarm.SwarmService.RemoteAbortUpdate(), Tgstation.Server.Host.Components.Chat.ChatManager.RemoveProviderChannels(), Tgstation.Server.Host.Server.RestartImpl(), Tgstation.Server.Client.ApiClient.RunRequest< TResult >(), Tgstation.Server.Host.Components.Chat.ChatManager.SendMessage(), Tgstation.Server.Host.Swarm.SwarmService.SendUpdatedServerListToNodes(), Tgstation.Server.Host.Swarm.SwarmService.Shutdown(), Tgstation.Server.Host.Components.Chat.ChatManager.StartAsync(), Tgstation.Server.Host.Components.Engine.EngineManager.StartAsync(), Tgstation.Server.Host.Components.InstanceManager.StopAsync(), Tgstation.Server.Host.Jobs.JobService.StopAsync(), Tgstation.Server.Host.Components.StaticFiles.Configuration.SymlinkStaticFilesTo(), and Tgstation.Server.Host.Controllers.InstanceController.Update().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html
index 1bb5d1c723..a8fa3d34c9 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html
@@ -1181,7 +1181,7 @@ Here is the caller graph for this function:
References Tgstation.Server.Host.Components.Deployment.DmbFactory.DmbAvailable, and Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb().
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitialCheckDmbUpdated().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitialCheckDmbUpdated().
@@ -2115,7 +2115,7 @@ Here is the call graph for this function:
Definition at line 42 of file DmbFactory.cs.
-
Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.LatestCompileJob(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb().
+
Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.LatestCompileJob(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb().
@@ -2153,7 +2153,7 @@ Here is the call graph for this function:
37 }
38 }
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitialCheckDmbUpdated().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitialCheckDmbUpdated().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html
index a5bc203950..f89f3dd9ff 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html
@@ -2073,7 +2073,7 @@ Here is the caller graph for this function:
Definition at line 36 of file Instance.cs.
-
Referenced by Tgstation.Server.Host.Components.Instance.AutoUpdateAction(), Tgstation.Server.Host.Components.Instance.RepositoryAutoUpdateJob(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync().
+
Referenced by Tgstation.Server.Host.Components.Instance.AutoUpdateAction(), Tgstation.Server.Host.Components.Instance.RepositoryAutoUpdateJob(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_message_content.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_message_content.html
index afd4abede7..e9696e933e 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_message_content.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_message_content.html
@@ -162,7 +162,7 @@ Properties
Definition at line 11 of file MessageContent.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeCommand(), Tgstation.Server.Host.Components.Chat.ChatManager.SendMessage(), and Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.SendMessage().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeCommand(), Tgstation.Server.Host.Components.Chat.ChatManager.SendMessage(), and Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.SendMessage().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html
index 8c965696cb..e5df6297be 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html
@@ -673,7 +673,7 @@ Private Member Functions
- Returns
- The created TopicParameters.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Broadcast().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Broadcast().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor.html
index 1d3e9f65a1..58302b0739 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor.html
@@ -304,7 +304,7 @@ Private Attributes
References Tgstation.Server.Host.Components.Session.SessionPersistor.ClearImpl(), and Tgstation.Server.Host.Components.Session.SessionPersistor.logger.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers().
@@ -633,7 +633,7 @@ Here is the caller graph for this function:
References Tgstation.Server.Host.Components.Session.SessionPersistor.databaseContextFactory, Tgstation.Server.Host.Components.Session.SessionPersistor.dmbFactory, Tgstation.Server.Host.Components.Deployment.IDmbFactory.FromCompileJob(), Tgstation.Server.Host.System.IProcessExecutor.GetProcess(), Tgstation.Server.Host.Components.Session.SessionPersistor.logger, Tgstation.Server.Host.Components.Session.SessionPersistor.metadata, Tgstation.Server.Host.Components.Session.SessionPersistor.processExecutor, Tgstation.Server.Host.System.IProcess.Terminate(), and Tgstation.Server.Host.Database.IDatabaseContextFactory.UseContext().
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_advanced_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_advanced_watchdog.html
index 7c15f4f74d..d368f34ba5 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_advanced_watchdog.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_advanced_watchdog.html
@@ -700,14 +700,14 @@ Private Attributes
121 }
readonly List< Task > deploymentCleanupTasks
List<T> of Tasks that are waiting to clean up old deployments.
IFilesystemLinkFactory LinkFactory
The IFilesystemLinkFactory for the AdvancedWatchdog.
-
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-
async ValueTask DisposeAsync()
-
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+
async ValueTask DisposeAsync()
+
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
-
References Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupTasks, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.LinkFactory.
+
References Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupTasks, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.LinkFactory.
@@ -815,11 +815,11 @@ Here is the caller graph for this function:
360 return true;
361 }
EngineType? Engine
The EngineType.
-
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
EngineVersion EngineVersion
The Api.Models.EngineVersion used to build the .dmb.
EngineType
The type of engine the codebase is using.
-
References Tgstation.Server.Api.Models.EngineVersion.Engine, Tgstation.Server.Host.Components.Deployment.IDmbProvider.EngineVersion, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger.
+
References Tgstation.Server.Api.Models.EngineVersion.Engine, Tgstation.Server.Host.Components.Deployment.IDmbProvider.EngineVersion, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger.
Referenced by Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable(), and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PrepServerForLaunch().
440 }
volatile? TaskCompletionSource deploymentCleanupGate
The TaskCompletionSource representing the cleanup of an unused IDmbProvider.
-
References Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupGate, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupTasks, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger.
+
References Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupGate, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupTasks, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger.
Referenced by Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.DisposeAndNullControllersImpl(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleMonitorWakeup(), and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot().
bool CanUseSwappableDmbProvider(IDmbProvider dmbProvider)
If the SwappableDmbProvider feature of the AdvancedWatchdog can be used with a given dmbProvider .
SwappableDmbProvider CreateSwappableDmbProvider(IDmbProvider dmbProvider)
Create a SwappableDmbProvider for a given dmbProvider .
async ValueTask PerformDmbSwap(SwappableDmbProvider newProvider, CancellationToken cancellationToken)
Suspends the BasicWatchdog.Server and calls SwappableDmbProvider.MakeActive(CancellationToken) on a n...
-
Models.? CompileJob ActiveCompileJob
Retrieves the Models.CompileJob currently running on the server.
+
Models.? CompileJob ActiveCompileJob
Retrieves the Models.CompileJob currently running on the server.
Provides absolute paths to the latest compiled .dmbs.
Models.CompileJob CompileJob
The CompileJob of the .dmb.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveCompileJob, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CanUseSwappableDmbProvider(), Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CreateSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), Tgstation.Server.Api.Models.Internal.CompileJob.DmeName, Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.pendingSwappable, and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PerformDmbSwap().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveCompileJob, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CanUseSwappableDmbProvider(), Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CreateSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), Tgstation.Server.Api.Models.Internal.CompileJob.DmeName, Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.pendingSwappable, and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PerformDmbSwap().
@@ -1357,15 +1357,15 @@ Here is the call graph for this function:
ValueTask Update(ReattachInformation reattachInformation, CancellationToken cancellationToken)
Update some reattachInformation .A ValueTask representing the running operation.
ISessionController? Server
The single ISessionController.
-
DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
-
async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
-
IChatManager Chat
The IChatManager for the WatchdogBase.
+
DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
+
async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
+
IChatManager Chat
The IChatManager for the WatchdogBase.
async ValueTask Delay(TimeSpan timeSpan, CancellationToken cancellationToken)
Create a Task that completes after a given timeSpan .A ValueTask representing the running operation.
void QueueWatchdogMessage(string message)
Queue a chat message to configured watchdog channels.
MonitorAction
The action for the monitor loop to take when control is returned to it.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.ActiveSwappable, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.CompileJob, Tgstation.Server.Host.Utils.AsyncDelayer.Delay(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupGate, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupTasks, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.DrainDeploymentCleanupTasks(), Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.FinishActivationPreparation(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.pendingSwappable, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PerformDmbSwap(), Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Server.Restart(), Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.StartupTimeout, Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.Swapped, and Tgstation.Server.Host.Components.Session.SessionPersistor.Update().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.ActiveSwappable, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.CompileJob, Tgstation.Server.Host.Utils.AsyncDelayer.Delay(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupGate, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.deploymentCleanupTasks, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.DrainDeploymentCleanupTasks(), Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.FinishActivationPreparation(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.pendingSwappable, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PerformDmbSwap(), Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Server.Restart(), Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.StartupTimeout, Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.Swapped, and Tgstation.Server.Host.Components.Session.SessionPersistor.Update().
@@ -1443,7 +1443,7 @@ Here is the call graph for this function:
373 }
ValueTask MakeActive(CancellationToken cancellationToken)
Make the SwappableDmbProvider active by replacing the live link with our CompileJob.
-
References Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.ActiveSwappable, Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.FinishActivationPreparation(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.MakeActive().
+
References Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.ActiveSwappable, Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.FinishActivationPreparation(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.MakeActive().
Referenced by Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PrepServerForLaunch().
410 }
void SuspendProcess()
Suspends the process.
-
References Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.CompileJob, Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.FinishActivationPreparation(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.MakeActive().
+
References Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.CompileJob, Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.FinishActivationPreparation(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.MakeActive().
Referenced by Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable(), and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot().
314 }
async ValueTask InitialLink(CancellationToken cancellationToken)
Create the initial link to the live game directory using ActiveSwappable.
-
References Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.ActiveSwappable, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CanUseSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CreateSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.InitialLink(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.pendingSwappable.
+
References Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.ActiveSwappable, Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CanUseSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CreateSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.InitialLink(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.pendingSwappable.
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html
index 7d3a395b51..164fe6218f 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html
@@ -589,11 +589,11 @@ Private Attributes
93 {
94 }
-
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
@@ -788,17 +788,17 @@ Private Attributes
192 }
virtual async ValueTask HandleNewDmbAvailable(CancellationToken cancellationToken)
Handler for MonitorActivationReason.NewDmbAvailable.
virtual ValueTask< MonitorAction > HandleNormalReboot(CancellationToken cancellationToken)
Handler for MonitorActivationReason.ActiveServerRebooted when the RebootState is RebootState....
-
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
-
WatchdogStatus Status
The current WatchdogStatus.
-
IChatManager Chat
The IChatManager for the WatchdogBase.
-
async ValueTask HandleEventImpl(EventType eventType, IEnumerable< string > parameters, bool relayToSession, CancellationToken cancellationToken)
Handle a given eventType without re-throwing errors.
+
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+
WatchdogStatus Status
The current WatchdogStatus.
+
IChatManager Chat
The IChatManager for the WatchdogBase.
+
async ValueTask HandleEventImpl(EventType eventType, IEnumerable< string > parameters, bool relayToSession, CancellationToken cancellationToken)
Handle a given eventType without re-throwing errors.
void QueueWatchdogMessage(string message)
Queue a chat message to configured watchdog channels.
@ Api
The ApiHeaders.ApiVersionHeader header is missing or invalid.
EventType
Types of events. Mirror in tgs.dm. Prefer last listed name for script.
MonitorAction
The action for the monitor loop to take when control is returned to it.
MonitorActivationReason
Reasons for the monitor to wake up.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.gracefulRebootRequired, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.gracefulRebootRequired, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status.
@@ -874,7 +874,7 @@ Here is the call graph for this function:
virtual ? Version DMApiVersion
The DMAPI Version.
ValueTask< bool > SetRebootState(RebootState newRebootState, CancellationToken cancellationToken)
Attempts to change the current RebootState to newRebootState .
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Api.Models.Internal.CompileJob.DMApiVersion, Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.gracefulRebootRequired, and Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Api.Models.Internal.CompileJob.DMApiVersion, Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.gracefulRebootRequired, and Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage().
Referenced by Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup().
305 }
-
References Tgstation.Server.Api.Models.Internal.CompileJob.DMApiVersion, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status.
+
References Tgstation.Server.Api.Models.Internal.CompileJob.DMApiVersion, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status.
Referenced by Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup().
ValueTask Update(ReattachInformation reattachInformation, CancellationToken cancellationToken)
Update some reattachInformation .A ValueTask representing the running operation.
virtual ValueTask SessionStartupPersist(CancellationToken cancellationToken)
Called to save the current Server into the WatchdogBase.SessionPersistor when initially launched.
virtual ValueTask< IDmbProvider > PrepServerForLaunch(IDmbProvider dmbToUse, CancellationToken cancellationToken)
Prepare the server to launch a new instance with the WatchdogBase.ActiveLaunchParameters and a given ...
-
async ValueTask ReattachFailure(CancellationToken cancellationToken)
Call from InitController(ValueTask, ReattachInformation, CancellationToken) when a reattach operation...
-
async ValueTask CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
-
DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
-
async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
-
async ValueTask DisposeAndNullControllers(CancellationToken cancellationToken)
Wrapper for DisposeAndNullControllersImpl under a locked context.
-
long? SessionId
An incrementing ID for representing current server execution.
+
async ValueTask ReattachFailure(CancellationToken cancellationToken)
Call from InitController(ValueTask, ReattachInformation, CancellationToken) when a reattach operation...
+
async ValueTask CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
+
DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
+
async ValueTask BeforeApplyDmb(Models.CompileJob newCompileJob, CancellationToken cancellationToken)
To be called before a given newCompileJob goes live.
+
async ValueTask DisposeAndNullControllers(CancellationToken cancellationToken)
Wrapper for DisposeAndNullControllersImpl under a locked context.
+
long? SessionId
An incrementing ID for representing current server execution.
ReattachInformation ReattachInformation
Gets the Session.ReattachInformation associated with the ISessionController.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CheckLaunchResult(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.PrepServerForLaunch(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.SessionId, Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.SessionStartupPersist(), and Tgstation.Server.Host.Components.Session.SessionPersistor.Update().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CheckLaunchResult(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.PrepServerForLaunch(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.SessionId, Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.SessionStartupPersist(), and Tgstation.Server.Host.Components.Session.SessionPersistor.Update().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog.html
index e685219e84..f017895d6b 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog.html
@@ -691,11 +691,11 @@ Additional Inherited Members
90 }
readonly GeneralConfiguration generalConfiguration
The GeneralConfiguration for the PosixWatchdog.
-
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
References Tgstation.Server.Host.Components.Watchdog.PosixWatchdog.generalConfiguration.
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html
index 5dac92cd16..b04717a963 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html
@@ -488,7 +488,7 @@ Private Attributes
Base class for IWatchdogs.
-
Definition at line 36 of file WatchdogBase.cs.
+
Definition at line 35 of file WatchdogBase.cs.
◆ WatchdogBase()
@@ -624,70 +624,70 @@ Private Attributes
-
Definition at line 210 of file WatchdogBase.cs.
-
226 {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
241
-
-
243
-
-
245
-
-
-
-
249
-
-
251 try
-
252 {
-
-
-
255 }
-
256 catch
-
257 {
-
-
-
260 throw;
-
261 }
-
262
-
263 Logger.LogTrace(
"Created watchdog");
-
264 }
+
Definition at line 209 of file WatchdogBase.cs.
+
225 {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
240
+
+
242
+
+
244
+
+
+
+
248
+
+
250 try
+
251 {
+
+
+
254 }
+
255 catch
+
256 {
+
+
+
259 throw;
+
260 }
+
261
+
262 Logger.LogTrace(
"Created watchdog");
+
263 }
-
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
-
bool releaseServers
If the servers should be released instead of shutdown.
-
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-
readonly Api.Models.Instance metadata
The Api.Models.Instance for the WatchdogBase.
-
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-
readonly SemaphoreSlim controllerDisposeSemaphore
SemaphoreSlim used for DisposeAndNullControllers.
-
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-
readonly SemaphoreSlim synchronizationSemaphore
The SemaphoreSlim for the WatchdogBase.
-
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
-
IIOManager GameIOManager
The IIOManager for the WatchdogBase pointing to the Game directory.
-
DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
-
IChatManager Chat
The IChatManager for the WatchdogBase.
-
readonly IRestartRegistration restartRegistration
The IRestartRegistration for the WatchdogBase.
-
volatile TaskCompletionSource activeParametersUpdated
TaskCompletionSource that completes when ActiveLaunchParameters are changed and we are running.
+
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+
ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+
bool releaseServers
If the servers should be released instead of shutdown.
+
readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+
readonly Api.Models.Instance metadata
The Api.Models.Instance for the WatchdogBase.
+
readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+
readonly SemaphoreSlim controllerDisposeSemaphore
SemaphoreSlim used for DisposeAndNullControllers.
+
readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+
readonly SemaphoreSlim synchronizationSemaphore
The SemaphoreSlim for the WatchdogBase.
+
readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+
IIOManager GameIOManager
The IIOManager for the WatchdogBase pointing to the Game directory.
+
DreamDaemonLaunchParameters ActiveLaunchParameters
The DreamDaemonLaunchParameters to be applied.
+
IChatManager Chat
The IChatManager for the WatchdogBase.
+
readonly IRestartRegistration restartRegistration
The IRestartRegistration for the WatchdogBase.
+
volatile TaskCompletionSource activeParametersUpdated
TaskCompletionSource that completes when ActiveLaunchParameters are changed and we are running.
void RegisterCommandHandler(ICustomCommandHandler customCommandHandler)
Registers a customCommandHandler to use.
IRestartRegistration RegisterForRestart(IRestartHandler handler)
Register a given handler to run before stopping the server for a restart.
@ List
User may list files if the Models.Instance allows it.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.activeParametersUpdated, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.autoStart, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.controllerDisposeSemaphore, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.diagnosticsIOManager, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.eventConsumer, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GameIOManager, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.jobManager, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.metadata, Tgstation.Server.Host.Components.Chat.IChatManager.RegisterCommandHandler(), Tgstation.Server.Host.Core.IServerControl.RegisterForRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.remoteDeploymentManagerFactory, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.restartRegistration, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.activeParametersUpdated, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.autoStart, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.controllerDisposeSemaphore, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.diagnosticsIOManager, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.eventConsumer, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GameIOManager, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.jobManager, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.metadata, Tgstation.Server.Host.Components.Chat.IChatManager.RegisterCommandHandler(), Tgstation.Server.Host.Core.IServerControl.RegisterForRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.remoteDeploymentManagerFactory, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.restartRegistration, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
@@ -748,46 +748,46 @@ Here is the call graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 726 of file WatchdogBase.cs.
-
727 {
-
-
729 {
-
730 Logger.LogTrace(
"Same compile job, not sending deployment event");
-
731 return;
-
732 }
-
733
-
-
-
-
737
-
-
-
-
741 {
-
742 GameIOManager.ResolvePath(newCompileJob.DirectoryName!.Value.ToString()),
-
743 },
-
744 false,
-
-
746
-
747 try
-
748 {
-
-
750 }
-
-
752 {
-
753 Logger.LogWarning(
ex,
"Failed to apply remote deployment!");
-
754 }
-
755
-
-
757 }
+
Definition at line 725 of file WatchdogBase.cs.
+
726 {
+
+
728 {
+
729 Logger.LogTrace(
"Same compile job, not sending deployment event");
+
730 return;
+
731 }
+
732
+
+
+
+
736
+
+
+
+
740 {
+
741 GameIOManager.ResolvePath(newCompileJob.DirectoryName!.Value.ToString()),
+
742 },
+
743 false,
+
+
745
+
746 try
+
747 {
+
+
749 }
+
+
751 {
+
752 Logger.LogWarning(
ex,
"Failed to apply remote deployment!");
+
753 }
+
754
+
+
756 }
virtual ? long Id
The ID of the entity.
-
Models.? CompileJob ActiveCompileJob
Retrieves the Models.CompileJob currently running on the server.
+
Models.? CompileJob ActiveCompileJob
Retrieves the Models.CompileJob currently running on the server.
IRemoteDeploymentManager CreateRemoteDeploymentManager(Api.Models.Instance metadata, RemoteGitProvider remoteGitProvider)
Creates a IRemoteDeploymentManager for a given remoteGitProvider .
ValueTask HandleEvent(EventType eventType, IEnumerable< string?> parameters, bool deploymentPipeline, CancellationToken cancellationToken)
Handle a given eventType .
EventType
Types of events. Mirror in tgs.dm. Prefer last listed name for script.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveCompileJob, Tgstation.Server.Host.Components.Deployment.Remote.IRemoteDeploymentManagerFactory.CreateRemoteDeploymentManager(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.eventConsumer, Tgstation.Server.Host.Components.Events.IEventConsumer.HandleEvent(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.metadata, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.remoteDeploymentManagerFactory.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveCompileJob, Tgstation.Server.Host.Components.Deployment.Remote.IRemoteDeploymentManagerFactory.CreateRemoteDeploymentManager(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.eventConsumer, Tgstation.Server.Host.Components.Events.IEventConsumer.HandleEvent(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.metadata, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.remoteDeploymentManagerFactory.
Referenced by Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), and Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController().
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-
Definition at line 469 of file WatchdogBase.cs.
-
470 {
-
-
472
-
-
-
475 {
-
476 Logger.LogInformation(
"Attempted broadcast failed, no active server!");
-
477 return false;
-
478 }
-
479
-
-
481 {
-
482 Logger.LogInformation(
"Attempted broadcast failed, no DMAPI!");
-
483 return false;
-
484 }
-
485
-
-
-
488 {
-
-
490 "Attempted broadcast failed, insufficient interop version: {interopVersion}. Requires {minimumRequiredVersion}!",
-
-
-
493 return false;
-
494 }
-
495
-
-
497
-
-
-
-
501
-
-
503 }
+
Definition at line 468 of file WatchdogBase.cs.
+
469 {
+
+
471
+
+
+
474 {
+
475 Logger.LogInformation(
"Attempted broadcast failed, no active server!");
+
476 return false;
+
477 }
+
478
+
+
480 {
+
481 Logger.LogInformation(
"Attempted broadcast failed, no DMAPI!");
+
482 return false;
+
483 }
+
484
+
+
+
487 {
+
+
489 "Attempted broadcast failed, insufficient interop version: {interopVersion}. Requires {minimumRequiredVersion}!",
+
+
+
492 return false;
+
493 }
+
494
+
+
496
+
+
+
+
500
+
+
502 }
Parameters for a topic request.
static TopicParameters CreateBroadcastParameters(string broadcastMessage)
Initializes a new instance of the TopicParameters class.
ISessionController? GetActiveController()
Get the active ISessionController.
-
References Tgstation.Server.Host.Components.Interop.Topic.TopicParameters.CreateBroadcastParameters(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Api.Rights.List, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger.
+
References Tgstation.Server.Host.Components.Interop.Topic.TopicParameters.CreateBroadcastParameters(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Api.Rights.List, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger.
@@ -948,34 +948,34 @@ Here is the call graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-
Definition at line 280 of file WatchdogBase.cs.
-
281 {
-
-
283 {
-
-
-
-
-
288 return false;
-
289
-
-
-
292 return false;
-
293
-
-
-
296 }
-
297
-
298 return true;
-
299 }
+
Definition at line 279 of file WatchdogBase.cs.
+
280 {
+
+
282 {
+
+
+
+
+
287 return false;
+
288
+
+
+
291 return false;
+
292
+
+
+
295 }
+
296
+
297 return true;
+
298 }
EngineType? Engine
The EngineType.
-
WatchdogStatus Status
The current WatchdogStatus.
+
WatchdogStatus Status
The current WatchdogStatus.
Async lock context helper.
static async ValueTask< SemaphoreSlimContext > Lock(SemaphoreSlim semaphore, CancellationToken cancellationToken, ILogger? logger=null)
Asyncronously locks a semaphore .
EngineVersion EngineVersion
Gets the Api.Models.EngineVersion associated with the ISessionController.
WatchdogStatus
The current status of the watchdog.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.activeParametersUpdated, Tgstation.Server.Api.Models.EngineVersion.Engine, Tgstation.Server.Host.Components.Session.ISessionController.EngineVersion, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.activeParametersUpdated, Tgstation.Server.Api.Models.EngineVersion.Engine, Tgstation.Server.Host.Components.Session.ISessionController.EngineVersion, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
@@ -1042,20 +1042,20 @@ Here is the call graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 649 of file WatchdogBase.cs.
-
650 {
-
-
652
-
653
-
-
-
-
657 new JobException(
$"{serverName} failed to start: {launchResult}"));
-
-
-
-
661 new JobException(
$"{serverName} timed out on startup: {ActiveLaunchParameters.StartupTimeout!.Value}s"));
-
662 }
+
Definition at line 648 of file WatchdogBase.cs.
+
649 {
+
+
651
+
652
+
+
+
+
656 new JobException(
$"{serverName} failed to start: {launchResult}"));
+
+
+
+
660 new JobException(
$"{serverName} timed out on startup: {ActiveLaunchParameters.StartupTimeout!.Value}s"));
+
661 }
Operation exceptions thrown from the context of a Models.Job.
ErrorCode
Types of Response.ErrorMessageResponses that the API may return.
@@ -1102,14 +1102,14 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-
Definition at line 462 of file WatchdogBase.cs.
-
463 {
-
-
-
466 }
-
async ValueTask CreateDumpNoLock(CancellationToken cancellationToken)
Attempt to create a process dump for the game server. Requires a lock on synchronizationSemaphore.
+
Definition at line 461 of file WatchdogBase.cs.
+
462 {
+
+
+
465 }
+
async ValueTask CreateDumpNoLock(CancellationToken cancellationToken)
Attempt to create a process dump for the game server. Requires a lock on synchronizationSemaphore.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDumpNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDumpNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
@@ -1158,35 +1158,35 @@ Here is the call graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 1246 of file WatchdogBase.cs.
-
1247 {
-
-
1249
-
-
1251 if (
session?.Lifetime.IsCompleted !=
false)
-
-
1253
-
-
1255
-
-
-
-
1259 $"DreamDaemon-{DateTimeOffset.UtcNow.ToFileStamp()}"));
-
1260
-
-
-
-
1264 dumpFileName =
$"{dumpFileNameTemplate} ({++iteration}){dumpFileExtension}";
-
1265
-
-
-
1268
-
1269 if (
session.Lifetime.IsCompleted)
-
-
1271
-
-
-
1274 }
+
Definition at line 1245 of file WatchdogBase.cs.
+
1246 {
+
+
1248
+
+
1250 if (
session?.Lifetime.IsCompleted !=
false)
+
+
1252
+
+
1254
+
+
+
+
1258 $"DreamDaemon-{DateTimeOffset.UtcNow.ToFileStamp()}"));
+
1259
+
+
+
+
1263 dumpFileName =
$"{dumpFileNameTemplate} ({++iteration}){dumpFileExtension}";
+
1264
+
+
+
1267
+
1268 if (
session.Lifetime.IsCompleted)
+
+
1270
+
+
+
1273 }
bool? Minidumps
If minidumps should be taken instead of full dumps.
string ResolvePath()
Retrieve the full path of the current working directory.
string ConcatPath(params string[] paths)
Combines an array of strings into a path.
@@ -1195,7 +1195,7 @@ Here is the call graph for this function:
References Tgstation.Server.Api.Rights.List.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDump(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDump(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck().
@@ -1257,22 +1257,22 @@ Here is the caller graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 693 of file WatchdogBase.cs.
-
694 {
-
695 Logger.LogTrace(
"DisposeAndNullControllers");
-
-
697 {
-
-
-
-
701 }
-
702 }
+
Definition at line 692 of file WatchdogBase.cs.
+
693 {
+
694 Logger.LogTrace(
"DisposeAndNullControllers");
+
+
696 {
+
+
+
+
700 }
+
701 }
ValueTask Clear(CancellationToken cancellationToken)
Clear any stored ReattachInformation.A ValueTask representing the running operation.
ValueTask DisposeAndNullControllersImpl()
Call IDisposable.Dispose and null the fields for all ISessionControllers.
-
References Tgstation.Server.Host.Components.Session.SessionPersistor.Clear(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.controllerDisposeSemaphore, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllersImpl(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers.
+
References Tgstation.Server.Host.Components.Session.SessionPersistor.Clear(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.controllerDisposeSemaphore, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllersImpl(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure().
@@ -1350,7 +1350,7 @@ Here is the caller graph for this function:
Call IDisposable.Dispose and null the fields for all ISessionControllers.
- Returns
- A ValueTask representing the running operation.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync().
@@ -1409,21 +1409,21 @@ Here is the caller graph for this function:
-
Definition at line 267 of file WatchdogBase.cs.
-
268 {
-
269 Logger.LogTrace(
"Disposing...");
-
-
-
272
-
-
-
-
-
277 }
-
bool disposed
If the WatchdogBase has been DisposeAsync'd.
-
CancellationTokenSource? monitorCts
The CancellationTokenSource for the monitor loop.
+
Definition at line 266 of file WatchdogBase.cs.
+
267 {
+
268 Logger.LogTrace(
"Disposing...");
+
+
+
271
+
+
+
+
+
276 }
+
bool disposed
If the WatchdogBase has been DisposeAsync'd.
+
CancellationTokenSource? monitorCts
The CancellationTokenSource for the monitor loop.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.controllerDisposeSemaphore, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllersImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.disposed, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorCts, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.restartRegistration, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.controllerDisposeSemaphore, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllersImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.disposed, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorCts, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.restartRegistration, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
Referenced by Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.AdvancedWatchdog(), and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable().
Get the active ISessionController.
- Returns
- The active ISessionController, if any.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Broadcast(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEvent(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Broadcast(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEvent(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
@@ -1575,55 +1575,55 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Chat.ICustomCommandHandler.
-
Definition at line 302 of file WatchdogBase.cs.
-
303 {
-
-
305 {
-
-
-
-
-
-
311 {
-
312 Text = "TGS: Server offline!",
-
313 };
-
314
-
-
316
-
-
-
319 {
-
320 Text = "TGS: Bad topic exchange!",
-
321 };
-
322
-
-
-
325 {
-
326 Text = "TGS: Bad topic response!",
-
327 };
-
328
-
-
330 {
-
-
-
333 };
-
334
-
-
336 {
-
-
338 }
-
339
-
-
341
-
-
343 }
-
344 }
+
Definition at line 301 of file WatchdogBase.cs.
+
302 {
+
+
304 {
+
+
+
+
+
+
310 {
+
311 Text = "TGS: Server offline!",
+
312 };
+
313
+
+
315
+
+
+
318 {
+
319 Text = "TGS: Bad topic exchange!",
+
320 };
+
321
+
+
+
324 {
+
325 Text = "TGS: Bad topic response!",
+
326 };
+
327
+
+
329 {
+
+
+
332 };
+
333
+
+
335 {
+
+
337 }
+
338
+
+
340
+
+
342 }
+
343 }
Represents a message to send to a chat provider.
string? Text
The message string.
Represents a chat command to be handled by DD.
-
void HandleChatResponses(TopicResponse? result)
Handle any TopicResponse.ChatResponses in a given topic result .
+
void HandleChatResponses(TopicResponse? result)
Handle any TopicResponse.ChatResponses in a given topic result .
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Components.Interop.MessageContent.Text.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Components.Interop.MessageContent.Text.
@@ -1675,48 +1675,48 @@ Here is the call graph for this function:
-
Definition at line 1203 of file WatchdogBase.cs.
-
1204 {
-
1205 if (
result?.ChatResponses !=
null)
-
1206 {
-
-
-
-
1210 {
-
1211 if (response.ChannelIds == null)
-
1212 {
-
1213 if (!warnedMissingChannelIds)
-
1214 {
-
1215 Logger.LogWarning("DMAPI response contains null channelIds!");
-
1216 warnedMissingChannelIds = true;
-
1217 }
-
1218
-
1219 return false;
-
1220 }
-
1221
-
1222 return true;
-
1223 }))
-
-
-
-
-
1228 {
-
-
-
1231 else
-
-
1233
-
1234 return null;
-
1235 })
-
-
-
1238 }
-
1239 }
+
Definition at line 1202 of file WatchdogBase.cs.
+
1203 {
+
1204 if (
result?.ChatResponses !=
null)
+
1205 {
+
+
+
+
1209 {
+
1210 if (response.ChannelIds == null)
+
1211 {
+
1212 if (!warnedMissingChannelIds)
+
1213 {
+
1214 Logger.LogWarning("DMAPI response contains null channelIds!");
+
1215 warnedMissingChannelIds = true;
+
1216 }
+
1217
+
1218 return false;
+
1219 }
+
1220
+
1221 return true;
+
1222 }))
+
+
+
+
+
1227 {
+
+
+
1230 else
+
+
1232
+
1233 return null;
+
1234 })
+
+
+
1237 }
+
1238 }
void QueueMessage(MessageContent message, IEnumerable< ulong > channelIds)
Queue a chat message to a given set of channelIds .
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Chat.IChatManager.QueueMessage().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Chat.IChatManager.QueueMessage().
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEvent().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEvent().
@@ -1857,27 +1857,27 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Events.IEventConsumer.
-
Definition at line 506 of file WatchdogBase.cs.
-
507 {
-
-
509
-
510
-
-
512
-
513
-
-
515 return;
-
516
-
-
-
-
-
521
-
-
523 }
+
Definition at line 505 of file WatchdogBase.cs.
+
506 {
+
+
508
+
509
+
+
511
+
512
+
+
514 return;
+
515
+
+
+
+
+
520
+
+
522 }
Data structure for TopicCommandType.EventNotification requests.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), and Tgstation.Server.Api.Rights.List.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), and Tgstation.Server.Api.Rights.List.
@@ -1953,28 +1953,28 @@ Here is the call graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 767 of file WatchdogBase.cs.
-
768 {
-
769 try
-
770 {
-
-
-
-
-
-
776 }
-
-
778 {
-
779 Logger.LogError(
ex,
"Suppressing exception triggered by event!");
-
780 }
-
781 }
+
Definition at line 766 of file WatchdogBase.cs.
+
767 {
+
768 try
+
769 {
+
+
+
+
+
+
775 }
+
+
777 {
+
778 Logger.LogError(
ex,
"Suppressing exception triggered by event!");
+
779 }
+
780 }
Extension methods for the ValueTask and ValueTask<TResult> classes.
static async ValueTask WhenAll(IEnumerable< ValueTask > tasks)
Fully await a given list of tasks .
Consumes EventTypes and takes the appropriate actions.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.eventConsumer, Tgstation.Server.Host.Components.Events.IEventConsumer.HandleEvent(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Common.Extensions.ValueTaskExtensions.WhenAll().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.eventConsumer, Tgstation.Server.Host.Components.Events.IEventConsumer.HandleEvent(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Common.Extensions.ValueTaskExtensions.WhenAll().
-
Referenced by Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
@@ -2053,96 +2053,96 @@ Here is the caller graph for this function:
- Returns
- A ValueTask<TResult> resulting in the next MonitorAction to take.
-
Definition at line 1118 of file WatchdogBase.cs.
-
1119 {
-
1120 Logger.LogTrace(
"Sending health check to active server...");
-
-
-
-
1124
-
-
1126
-
-
-
1129 {
-
-
1131 {
-
1132 case 1:
-
1133 Logger.LogDebug(
"DEFCON 4: Game server missed first health check!");
-
1134 break;
-
1135 case 2:
-
1136 const string message2 =
"DEFCON 3: Game server has missed 2 health checks!";
-
-
-
1139 break;
-
1140 case 3:
-
-
1142 ? "shutdown"
-
1143 : "be restarted";
-
1144 const string logTemplate1 =
"DEFCON 2: Game server has missed 3 health checks! If it does not respond to the next one, the watchdog will {actionToTake}!";
-
-
-
-
1148 "{actionToTake}",
-
-
-
1151 break;
-
1152 case 4:
-
-
1154 ? "Shutting down due to graceful termination request"
-
1155 : "Restarting";
-
1156 const string logTemplate2 =
"DEFCON 1: Four health checks have been missed! {actionTaken}...";
-
-
-
-
1160 "{actionTaken}",
-
-
-
1163
-
-
1165 {
-
1166 Logger.LogDebug(
"DumpOnHealthCheckRestart enabled.");
-
1167 try
-
1168 {
-
-
1170 }
-
-
1172 {
-
1173 Logger.LogWarning(
ex,
"Creating dump failed!");
-
1174 }
-
-
1176 {
-
1177 Logger.LogWarning(
ex,
"Creating dump failed!");
-
1178 }
-
1179 }
-
1180 else
-
1181 Logger.LogTrace(
"DumpOnHealthCheckRestart disabled.");
-
1182
-
-
-
1185 default:
-
-
1187 break;
-
1188 }
-
1189 }
-
1190 else
-
1191 {
-
-
-
1194 }
-
1195
-
-
1197 }
+
Definition at line 1117 of file WatchdogBase.cs.
+
1118 {
+
1119 Logger.LogTrace(
"Sending health check to active server...");
+
+
+
+
1123
+
+
1125
+
+
+
1128 {
+
+
1130 {
+
1131 case 1:
+
1132 Logger.LogDebug(
"DEFCON 4: Game server missed first health check!");
+
1133 break;
+
1134 case 2:
+
1135 const string message2 =
"DEFCON 3: Game server has missed 2 health checks!";
+
+
+
1138 break;
+
1139 case 3:
+
+
1141 ? "shutdown"
+
1142 : "be restarted";
+
1143 const string logTemplate1 =
"DEFCON 2: Game server has missed 3 health checks! If it does not respond to the next one, the watchdog will {actionToTake}!";
+
+
+
+
1147 "{actionToTake}",
+
+
+
1150 break;
+
1151 case 4:
+
+
1153 ? "Shutting down due to graceful termination request"
+
1154 : "Restarting";
+
1155 const string logTemplate2 =
"DEFCON 1: Four health checks have been missed! {actionTaken}...";
+
+
+
+
1159 "{actionTaken}",
+
+
+
1162
+
+
1164 {
+
1165 Logger.LogDebug(
"DumpOnHealthCheckRestart enabled.");
+
1166 try
+
1167 {
+
+
1169 }
+
+
1171 {
+
1172 Logger.LogWarning(
ex,
"Creating dump failed!");
+
1173 }
+
+
1175 {
+
1176 Logger.LogWarning(
ex,
"Creating dump failed!");
+
1177 }
+
1178 }
+
1179 else
+
1180 Logger.LogTrace(
"DumpOnHealthCheckRestart disabled.");
+
1181
+
+
+
1184 default:
+
+
1186 break;
+
1187 }
+
1188 }
+
1189 else
+
1190 {
+
+
+
1193 }
+
1194
+
+
1196 }
bool? DumpOnHealthCheckRestart
If a process core dump should be created prior to restarting the watchdog due to health check failure...
-
uint? ClientCount
Last known client count queried from the DMAPI. Requires health checks to be enabled to populate.
-
async ValueTask DisposeAndNullControllers(CancellationToken cancellationToken)
Wrapper for DisposeAndNullControllersImpl under a locked context.
-
int healthChecksMissed
The number of hearbeats missed.
+
uint? ClientCount
Last known client count queried from the DMAPI. Requires health checks to be enabled to populate.
+
async ValueTask DisposeAndNullControllers(CancellationToken cancellationToken)
Wrapper for DisposeAndNullControllersImpl under a locked context.
+
int healthChecksMissed
The number of hearbeats missed.
void QueueWatchdogMessage(string message)
Queue a chat message to configured watchdog channels.
MonitorAction
The action for the monitor loop to take when control is returned to it.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ClientCount, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDumpNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.DumpOnHealthCheckRestart, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.healthChecksMissed, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ClientCount, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDumpNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.DumpOnHealthCheckRestart, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.healthChecksMissed, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage().
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
@@ -2237,7 +2237,7 @@ Here is the caller graph for this function:
- Returns
- A ValueTask<TResult> resulting in the MonitorAction to take.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
@@ -2307,33 +2307,33 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Core.IRestartHandler.
-
Definition at line 434 of file WatchdogBase.cs.
-
435 {
-
-
437 {
-
-
439
-
-
441 {
-
442 Logger.LogDebug(
"Waiting for server to gracefully shut down.");
-
-
444 }
-
445 else
-
446 Logger.LogTrace(
"Graceful shutdown requested but server is already offline.");
-
447
-
448 return;
-
449 }
-
450
-
-
-
-
454 else
-
455 Logger.LogTrace(
"Not sending detach chat message as status is: {status}",
Status);
-
456 }
-
async ValueTask Terminate(bool graceful, CancellationToken cancellationToken)
Stops the watchdog.A ValueTask representing the running operation.
-
Task? monitorTask
The Task running the monitor loop.
+
Definition at line 433 of file WatchdogBase.cs.
+
434 {
+
+
436 {
+
+
438
+
+
440 {
+
441 Logger.LogDebug(
"Waiting for server to gracefully shut down.");
+
+
443 }
+
444 else
+
445 Logger.LogTrace(
"Graceful shutdown requested but server is already offline.");
+
446
+
447 return;
+
448 }
+
449
+
+
+
+
453 else
+
454 Logger.LogTrace(
"Not sending detach chat message as status is: {status}",
Status);
+
455 }
+
async ValueTask Terminate(bool graceful, CancellationToken cancellationToken)
Stops the watchdog.A ValueTask representing the running operation.
+
Task? monitorTask
The Task running the monitor loop.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorTask, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorTask, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate().
@@ -2415,7 +2415,7 @@ Here is the call graph for this function:
- Returns
- A Task representing the running operation.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure().
@@ -2477,25 +2477,25 @@ Here is the caller graph for this function:
- Returns
- A Task that completes if and when a newer CompileJob is available.
-
Definition at line 834 of file WatchdogBase.cs.
-
835 {
-
-
837
-
-
-
840 {
-
841 Logger.LogDebug(
"Found new CompileJob without waiting");
-
842 return;
-
843 }
-
844
-
-
846 }
+
Definition at line 833 of file WatchdogBase.cs.
+
834 {
+
+
836
+
+
+
839 {
+
840 Logger.LogDebug(
"Found new CompileJob without waiting");
+
841 return;
+
842 }
+
843
+
+
845 }
Task OnNewerDmb
Get a Task that completes when the result of a call to LockNextDmb will be different than the previou...
async ValueTask< CompileJob?> LatestCompileJob()
Gets the latest CompileJob.A ValueTask<TResult> resulting in the latest CompileJob or null if none ar...
-
References Tgstation.Server.Host.Components.Deployment.DmbFactory.LatestCompileJob(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Deployment.DmbFactory.OnNewerDmb.
+
References Tgstation.Server.Host.Components.Deployment.DmbFactory.LatestCompileJob(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Deployment.DmbFactory.OnNewerDmb.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
@@ -2613,16 +2613,16 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-
Definition at line 347 of file WatchdogBase.cs.
-
348 {
-
-
-
-
-
353 }
-
async ValueTask LaunchNoLock(bool startMonitor, bool announce, bool announceFailure, ReattachInformation? reattachInfo, CancellationToken cancellationToken)
Launches the watchdog.
+
Definition at line 346 of file WatchdogBase.cs.
+
347 {
+
+
+
+
+
352 }
+
async ValueTask LaunchNoLock(bool startMonitor, bool announce, bool announceFailure, ReattachInformation? reattachInfo, CancellationToken cancellationToken)
Launches the watchdog.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
@@ -2759,85 +2759,85 @@ Here is the call graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 547 of file WatchdogBase.cs.
-
553 {
-
554 Logger.LogTrace(
"Begin LaunchImplNoLock");
-
-
-
557
-
-
-
560
-
561
-
-
-
564 {
-
-
-
567 ? "Launching..."
-
568 : "Reattaching...");
-
-
-
571 }
-
572
-
573
-
-
-
-
577
-
578 try
-
579 {
-
-
581 }
-
-
583 {
-
584 Logger.LogTrace(
ex,
"Controller initialization cancelled!");
-
585 throw;
-
586 }
-
-
588 {
-
589 Logger.LogWarning(
e,
"Failed to start watchdog!");
-
-
-
592 {
-
-
-
-
596 }
-
597
-
-
599 throw;
-
600 }
-
601 finally
-
602 {
-
603
-
604 try
-
605 {
-
-
607 }
-
-
609 {
-
610 Logger.LogTrace(
ex,
"Announcement task canceled!");
-
611 }
-
612 }
-
613
-
614 Logger.LogInformation(
"Controller(s) initialized successfully");
-
615
-
-
617 {
-
-
-
620 }
-
621 }
+
Definition at line 546 of file WatchdogBase.cs.
+
552 {
+
553 Logger.LogTrace(
"Begin LaunchImplNoLock");
+
+
+
556
+
+
+
559
+
560
+
+
+
563 {
+
+
+
566 ? "Launching..."
+
567 : "Reattaching...");
+
+
+
570 }
+
571
+
572
+
+
+
+
576
+
577 try
+
578 {
+
+
580 }
+
+
582 {
+
583 Logger.LogTrace(
ex,
"Controller initialization cancelled!");
+
584 throw;
+
585 }
+
+
587 {
+
588 Logger.LogWarning(
e,
"Failed to start watchdog!");
+
+
+
591 {
+
+
+
+
595 }
+
596
+
+
598 throw;
+
599 }
+
600 finally
+
601 {
+
602
+
603 try
+
604 {
+
+
606 }
+
+
608 {
+
609 Logger.LogTrace(
ex,
"Announcement task canceled!");
+
610 }
+
611 }
+
612
+
613 Logger.LogInformation(
"Controller(s) initialized successfully");
+
614
+
+
616 {
+
+
+
619 }
+
620 }
bool DmbAvailable
If LockNextDmb will succeed.
-
DreamDaemonLaunchParameters? LastLaunchParameters
The DreamDaemonLaunchParameters the active server is using.This may not be the exact same as ActiveLa...
+
DreamDaemonLaunchParameters? LastLaunchParameters
The DreamDaemonLaunchParameters the active server is using.This may not be the exact same as ActiveLa...
ValueTask InitController(ValueTask eventTask, ReattachInformation? reattachInfo, CancellationToken cancellationToken)
Starts all ISessionControllers.
-
async Task MonitorLifetimes(CancellationToken cancellationToken)
The main loop of the watchdog. Ayschronously waits for events to occur and then responds to them.
-
async ValueTask HandleEventImpl(EventType eventType, IEnumerable< string > parameters, bool relayToSession, CancellationToken cancellationToken)
Handle a given eventType without re-throwing errors.
+
async Task MonitorLifetimes(CancellationToken cancellationToken)
The main loop of the watchdog. Ayschronously waits for events to occur and then responds to them.
+
async ValueTask HandleEventImpl(EventType eventType, IEnumerable< string > parameters, bool relayToSession, CancellationToken cancellationToken)
Handle a given eventType without re-throwing errors.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ClientCount, Tgstation.Server.Host.Components.Deployment.DmbFactory.DmbAvailable, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.healthChecksMissed, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LastLaunchParameters, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorCts, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorTask, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ClientCount, Tgstation.Server.Host.Components.Deployment.DmbFactory.DmbAvailable, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.healthChecksMissed, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LastLaunchParameters, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorCts, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorTask, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync().
@@ -2958,233 +2958,233 @@ Here is the caller graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 854 of file WatchdogBase.cs.
-
855 {
-
856 Logger.LogTrace(
"Entered MonitorLifetimes");
-
-
-
859
-
860
-
861 try
-
862 {
-
-
-
-
-
-
-
-
-
-
-
-
-
875 {
-
-
877 try
-
878 {
-
-
-
881
-
-
883
-
-
885 {
-
-
-
888 {
-
-
890 return;
-
891
-
-
893 }
-
894
-
-
896
-
-
-
-
-
901
-
-
-
904
-
-
-
-
908 () =>
-
909 {
-
-
-
-
-
-
915 });
-
916 }
-
917
-
-
919 {
-
-
921
-
-
-
-
-
926 : Task.Delay(
-
-
-
929
-
930
-
-
-
-
-
-
-
-
-
939
-
940
-
-
942 }
-
943 else
-
944 {
-
945 Logger.LogError(
"Controller was null on monitor wakeup! Attempting restart...");
-
-
947 }
-
948
-
-
950 Logger.LogTrace(
"Monitor activated");
-
951
-
952
-
-
954 {
-
955
-
-
-
958
-
959
-
-
961 {
-
-
963
-
-
965 {
-
-
967 task = null;
-
-
-
-
971 {
-
-
973 return true;
-
974 }
-
975
-
976 return false;
-
977 }
-
978
-
979
-
-
-
-
-
-
-
-
987
-
-
989
-
-
-
992 else
-
993 {
-
-
-
-
-
998 else
-
-
-
-
1002 }
-
1003 }
-
1004 }
-
1005
-
-
1007
-
1008
-
-
1010 {
-
-
-
1013 }
-
1014 }
-
-
1016 {
-
1017
-
-
-
1020 "Monitor crashed! Iteration: {iteration}",
-
-
1022
-
-
1024 ? "Recovering"
-
1025 : "Shutting down";
-
-
1027 $"Monitor crashed, this should NEVER happen! Please report this, full details in logs! {nextActionMessage}. Error: {e.Message}");
-
1028
-
-
-
-
1032 {
-
-
-
1035 else
-
1036 Logger.LogDebug(
"Server seems to be okay, not restarting");
-
-
1038 }
-
1039 }
-
1040 finally
-
1041 {
-
-
1043 }
-
1044 }
-
1045 }
-
-
1047 {
-
1048
-
1049 Logger.LogDebug(
"Monitor cancelled");
-
1050
-
-
1052 {
-
1053 Logger.LogTrace(
"Detaching server...");
-
-
-
-
1057 else
-
1058 Logger.LogError(
"Controller was null on monitor shutdown!");
-
1059 }
-
1060 }
-
1061
-
1062
-
-
-
1065
-
1066 Logger.LogTrace(
"Monitor exiting...");
-
1067 }
+
Definition at line 853 of file WatchdogBase.cs.
+
854 {
+
855 Logger.LogTrace(
"Entered MonitorLifetimes");
+
+
+
858
+
859
+
860 try
+
861 {
+
+
+
+
+
+
+
+
+
+
+
+
+
874 {
+
+
876 try
+
877 {
+
+
+
880
+
+
882
+
+
884 {
+
+
+
887 {
+
+
889 return;
+
890
+
+
892 }
+
893
+
+
895
+
+
+
+
+
900
+
+
+
903
+
+
+
+
907 () =>
+
908 {
+
+
+
+
+
+
914 });
+
915 }
+
916
+
+
918 {
+
+
920
+
+
+
+
+
925 : Task.Delay(
+
+
+
928
+
929
+
+
+
+
+
+
+
+
+
938
+
939
+
+
941 }
+
942 else
+
943 {
+
944 Logger.LogError(
"Controller was null on monitor wakeup! Attempting restart...");
+
+
946 }
+
947
+
+
949 Logger.LogTrace(
"Monitor activated");
+
950
+
951
+
+
953 {
+
954
+
+
+
957
+
958
+
+
960 {
+
+
962
+
+
964 {
+
+
966 task = null;
+
+
+
+
970 {
+
+
972 return true;
+
973 }
+
974
+
975 return false;
+
976 }
+
977
+
978
+
+
+
+
+
+
+
+
986
+
+
988
+
+
+
991 else
+
992 {
+
+
+
+
+
997 else
+
+
+
+
1001 }
+
1002 }
+
1003 }
+
1004
+
+
1006
+
1007
+
+
1009 {
+
+
+
1012 }
+
1013 }
+
+
1015 {
+
1016
+
+
+
1019 "Monitor crashed! Iteration: {iteration}",
+
+
1021
+
+
1023 ? "Recovering"
+
1024 : "Shutting down";
+
+
1026 $"Monitor crashed, this should NEVER happen! Please report this, full details in logs! {nextActionMessage}. Error: {e.Message}");
+
1027
+
+
+
+
1031 {
+
+
+
1034 else
+
1035 Logger.LogDebug(
"Server seems to be okay, not restarting");
+
+
1037 }
+
1038 }
+
1039 finally
+
1040 {
+
+
1042 }
+
1043 }
+
1044 }
+
+
1046 {
+
1047
+
1048 Logger.LogDebug(
"Monitor cancelled");
+
1049
+
+
1051 {
+
1052 Logger.LogTrace(
"Detaching server...");
+
+
+
+
1056 else
+
1057 Logger.LogError(
"Controller was null on monitor shutdown!");
+
1058 }
+
1059 }
+
1060
+
1061
+
+
+
1064
+
1065 Logger.LogTrace(
"Monitor exiting...");
+
1066 }
uint? HealthCheckSeconds
The number of seconds between each watchdog health check. 0 disables.
-
async ValueTask< MonitorAction > HandleHealthCheck(CancellationToken cancellationToken)
Handles a watchdog health check.
+
async ValueTask< MonitorAction > HandleHealthCheck(CancellationToken cancellationToken)
Handles a watchdog health check.
ValueTask< MonitorAction > HandleMonitorWakeup(MonitorActivationReason activationReason, CancellationToken cancellationToken)
Handles the actions to take when the monitor has to "wake up".
-
async ValueTask MonitorRestart(CancellationToken cancellationToken)
Attempt to restart the monitor from scratch.
-
async Task InitialCheckDmbUpdated(CompileJob currentCompileJob)
Check for a new IDmbProvider.
+
async ValueTask MonitorRestart(CancellationToken cancellationToken)
Attempt to restart the monitor from scratch.
+
async Task InitialCheckDmbUpdated(CompileJob currentCompileJob)
Check for a new IDmbProvider.
Helpers for manipulating the Serilog.Context.LogContext.
const string WatchdogMonitorIterationContextProperty
The Serilog.Context.LogContext property name for the ID of the watchdog monitor iteration currently b...
Handles communication with a DreamDaemon IProcess.
MonitorActivationReason
Reasons for the monitor to wake up.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.activeParametersUpdated, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.disposed, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleMonitorWakeup(), Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.HealthCheckSeconds, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitialCheckDmbUpdated(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Utils.SerilogContextHelper.WatchdogMonitorIterationContextProperty.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ActiveLaunchParameters, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.activeParametersUpdated, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.disposed, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleMonitorWakeup(), Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.HealthCheckSeconds, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitialCheckDmbUpdated(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Utils.SerilogContextHelper.WatchdogMonitorIterationContextProperty.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock().
@@ -3305,51 +3305,51 @@ Here is the caller graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 788 of file WatchdogBase.cs.
-
789 {
-
790 Logger.LogTrace(
"Monitor restart!");
-
791
-
-
793
-
-
795 {
-
-
-
-
799 try
-
800 {
-
801
-
-
-
804 Logger.LogDebug(
"Relaunch successful, resuming monitor...");
-
805 return;
-
806 }
-
-
808 {
-
-
810 }
-
811
-
-
-
814
-
-
-
-
818 TimeSpan.FromHours(1).TotalSeconds);
-
819
-
-
821 $"Failed to restart (Attempt: {retryAttempts}), retrying in {retryDelay}s...");
-
822
-
-
-
-
826 }
-
827 }
+
Definition at line 787 of file WatchdogBase.cs.
+
788 {
+
789 Logger.LogTrace(
"Monitor restart!");
+
790
+
+
792
+
+
794 {
+
+
+
+
798 try
+
799 {
+
800
+
+
+
803 Logger.LogDebug(
"Relaunch successful, resuming monitor...");
+
804 return;
+
805 }
+
+
807 {
+
+
809 }
+
810
+
+
+
813
+
+
+
+
817 TimeSpan.FromHours(1).TotalSeconds);
+
818
+
+
820 $"Failed to restart (Attempt: {retryAttempts}), retrying in {retryDelay}s...");
+
821
+
+
+
+
825 }
+
826 }
async ValueTask Delay(TimeSpan timeSpan, CancellationToken cancellationToken)
Create a Task that completes after a given timeSpan .A ValueTask representing the running operation.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Utils.AsyncDelayer.Delay(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Utils.AsyncDelayer.Delay(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
@@ -3470,20 +3470,20 @@ Here is the caller graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 669 of file WatchdogBase.cs.
-
670 {
-
671
-
672
-
-
-
675 const string FailReattachMessage =
"Unable to properly reattach to server! Restarting watchdog...";
-
-
677
-
-
-
680 }
+
Definition at line 668 of file WatchdogBase.cs.
+
669 {
+
670
+
671
+
+
+
674 const string FailReattachMessage =
"Unable to properly reattach to server! Restarting watchdog...";
+
+
676
+
+
+
679 }
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ClientCount, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitController(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ClientCount, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitController(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, and Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage().
Referenced by Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController().
Reimplemented in Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.
-
Definition at line 356 of file WatchdogBase.cs.
-
357 {
-
-
359 {
-
-
361 return;
-
-
-
-
365 }
-
366 }
+
Definition at line 355 of file WatchdogBase.cs.
+
356 {
+
+
358 {
+
+
360 return;
+
+
+
+
364 }
+
365 }
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore.
@@ -3626,31 +3626,31 @@ Here is the call graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-
Definition at line 369 of file WatchdogBase.cs.
-
370 {
-
-
-
373
-
374 Logger.LogTrace(
"Begin Restart. Graceful: {gracefulFlag}",
graceful);
-
-
376 {
-
-
378 {
-
-
-
-
382 return;
-
383 }
-
384
-
-
-
-
388 Logger.LogWarning(
"Unable to send reboot state change event!");
-
389 }
-
390 }
-
async ValueTask TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
Implementation of Terminate(bool, CancellationToken). Does not lock synchronizationSemaphore.
+
Definition at line 368 of file WatchdogBase.cs.
+
369 {
+
+
+
372
+
373 Logger.LogTrace(
"Begin Restart. Graceful: {gracefulFlag}",
graceful);
+
+
375 {
+
+
377 {
+
+
+
+
381 return;
+
382 }
+
383
+
+
+
+
387 Logger.LogWarning(
"Unable to send reboot state change event!");
+
388 }
+
389 }
+
async ValueTask TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
Implementation of Terminate(bool, CancellationToken). Does not lock synchronizationSemaphore.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
@@ -3749,34 +3749,34 @@ Here is the call graph for this function:
-
Definition at line 393 of file WatchdogBase.cs.
-
394 {
-
-
-
-
398 return;
-
399
-
400 var job = Models.Job.Create(
-
-
402 ?
JobCode.StartupWatchdogReattach
-
-
-
-
-
-
-
-
410 {
-
411 if (
core?.Watchdog !=
this)
-
-
413
-
-
-
416
-
-
418 },
-
-
420 }
+
Definition at line 392 of file WatchdogBase.cs.
+
393 {
+
+
+
+
397 return;
+
398
+
399 var job = Models.Job.Create(
+
+
401 ?
JobCode.StartupWatchdogReattach
+
+
+
+
+
+
+
+
409 {
+
410 if (
core?.Watchdog !=
this)
+
+
412
+
+
+
415
+
+
417 },
+
+
419 }
Metadata about a server instance.
async ValueTask< ReattachInformation?> Load(CancellationToken cancellationToken)
Load a saved ReattachInformation.A ValueTask<TResult> resulting in the stored ReattachInformation if ...
ValueTask UpdateTrackingContexts(CancellationToken cancellationToken)
Force an update with the active channels on all active IChatTrackingContexts.
@@ -3786,7 +3786,7 @@ Here is the call graph for this function:
DreamDaemonRights
Rights for managing DreamDaemon.
@ Shutdown
User can immediately shutdown the Watchdog.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.autoStart, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Instance.DifferentCoreExceptionMessage, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.jobManager, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Session.SessionPersistor.Load(), Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.metadata, Tgstation.Server.Host.Jobs.IJobManager.RegisterOperation(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Components.Chat.IChatManager.UpdateTrackingContexts().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.autoStart, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Instance.DifferentCoreExceptionMessage, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.jobManager, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Session.SessionPersistor.Load(), Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.metadata, Tgstation.Server.Host.Jobs.IJobManager.RegisterOperation(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Components.Chat.IChatManager.UpdateTrackingContexts().
@@ -3918,24 +3918,24 @@ Here is the call graph for this function:
Stops MonitorLifetimes(CancellationToken). Doesn't kill the servers.
- Returns
- A ValueTask<TResult> resulting in
true if the monitor was running, false otherwise.
-
Definition at line 627 of file WatchdogBase.cs.
-
628 {
-
629 Logger.LogTrace(
"StopMonitor");
-
-
631 return false;
-
-
-
-
635 Logger.LogTrace(
"Stopped Monitor");
-
-
-
-
-
640 }
+
Definition at line 626 of file WatchdogBase.cs.
+
627 {
+
628 Logger.LogTrace(
"StopMonitor");
+
+
630 return false;
+
+
+
+
634 Logger.LogTrace(
"Stopped Monitor");
+
+
+
+
+
639 }
-
References Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorCts, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorTask.
+
References Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorCts, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.monitorTask.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
@@ -3993,15 +3993,15 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-
Definition at line 427 of file WatchdogBase.cs.
-
428 {
-
-
-
431 }
+
Definition at line 426 of file WatchdogBase.cs.
+
-
References Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
+
References Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Utils.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.synchronizationSemaphore, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart().
@@ -4090,47 +4090,47 @@ Here is the caller graph for this function:
- Returns
- A ValueTask representing the running operation.
-
Definition at line 1077 of file WatchdogBase.cs.
-
1078 {
-
-
1080 return;
-
-
1082 {
-
-
-
-
-
-
-
-
1090
-
-
-
1093
-
-
1095
-
-
1097
-
-
1099 return;
-
1100 }
-
1101
-
1102
-
-
-
1105 {
-
-
1107 Logger.LogTrace(
"Graceful termination requested");
-
1108 }
-
1109 else
-
1110 Logger.LogTrace(
"Could not gracefully terminate as there is no active controller!");
-
1111 }
-
async ValueTask< bool > StopMonitor()
Stops MonitorLifetimes(CancellationToken). Doesn't kill the servers.
+
Definition at line 1076 of file WatchdogBase.cs.
+
1077 {
+
+
1079 return;
+
+
1081 {
+
+
+
+
+
+
+
+
1089
+
+
+
1092
+
+
1094
+
+
1096
+
+
1098 return;
+
1099 }
+
1100
+
1101
+
+
+
1104 {
+
+
1106 Logger.LogTrace(
"Graceful termination requested");
+
1107 }
+
1108 else
+
1109 Logger.LogTrace(
"Could not gracefully terminate as there is no active controller!");
+
1110 }
+
async ValueTask< bool > StopMonitor()
Stops MonitorLifetimes(CancellationToken). Doesn't kill the servers.
@ WatchdogShutdown
Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters.
-
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LastLaunchParameters, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StopMonitor().
+
References Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Chat, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.GetActiveController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LastLaunchParameters, Tgstation.Server.Api.Rights.List, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger, Tgstation.Server.Host.Components.Chat.IChatManager.QueueWatchdogMessage(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.releaseServers, Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Status, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StopMonitor().
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate().
@@ -4191,9 +4191,9 @@ Here is the caller graph for this function:
TaskCompletionSource that completes when ActiveLaunchParameters are changed and we are running.
-
Definition at line 160 of file WatchdogBase.cs.
+
Definition at line 159 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4219,9 +4219,9 @@ Here is the caller graph for this function:
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in StartAsync(CancellationToken).
-
Definition at line 155 of file WatchdogBase.cs.
+
Definition at line 154 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4247,9 +4247,9 @@ Here is the caller graph for this function:
SemaphoreSlim used for DisposeAndNullControllers.
-
Definition at line 125 of file WatchdogBase.cs.
+
Definition at line 124 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4275,9 +4275,9 @@ Here is the caller graph for this function:
The IIOManager pointing to the Diagnostics directory.
-
Definition at line 145 of file WatchdogBase.cs.
+
Definition at line 144 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4303,9 +4303,9 @@ Here is the caller graph for this function:
If the WatchdogBase has been DisposeAsync'd.
-
Definition at line 190 of file WatchdogBase.cs.
+
Definition at line 189 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
@@ -4331,9 +4331,9 @@ Here is the caller graph for this function:
The IEventConsumer that is not the WatchdogBase.
-
Definition at line 130 of file WatchdogBase.cs.
+
Definition at line 129 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4359,9 +4359,9 @@ Here is the caller graph for this function:
The number of hearbeats missed.
-
Definition at line 180 of file WatchdogBase.cs.
+
Definition at line 179 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock().
@@ -4387,9 +4387,9 @@ Here is the caller graph for this function:
The IJobManager for the WatchdogBase.
-
Definition at line 135 of file WatchdogBase.cs.
+
Definition at line 134 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4415,9 +4415,9 @@ Here is the caller graph for this function:
The Api.Models.Instance for the WatchdogBase.
-
Definition at line 115 of file WatchdogBase.cs.
+
Definition at line 114 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4443,9 +4443,9 @@ Here is the caller graph for this function:
The CancellationTokenSource for the monitor loop.
-
Definition at line 165 of file WatchdogBase.cs.
+
Definition at line 164 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StopMonitor().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StopMonitor().
@@ -4471,9 +4471,9 @@ Here is the caller graph for this function:
The Task running the monitor loop.
-
Definition at line 170 of file WatchdogBase.cs.
+
Definition at line 169 of file WatchdogBase.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StopMonitor().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StopMonitor().
@@ -4499,9 +4499,9 @@ Here is the caller graph for this function:
If the servers should be released instead of shutdown.
-Definition at line 185 of file WatchdogBase.cs.
+Definition at line 184 of file WatchdogBase.cs.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4527,9 +4527,9 @@ Here is the caller graph for this function:
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-Definition at line 150 of file WatchdogBase.cs.
+Definition at line 149 of file WatchdogBase.cs.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4555,9 +4555,9 @@ Here is the caller graph for this function:
The IRestartRegistration for the WatchdogBase.
-Definition at line 140 of file WatchdogBase.cs.
+Definition at line 139 of file WatchdogBase.cs.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4583,7 +4583,7 @@ Here is the caller graph for this function:
Backing field for Status.
-Definition at line 175 of file WatchdogBase.cs.
+Definition at line 174 of file WatchdogBase.cs.
@@ -4609,9 +4609,9 @@ Here is the caller graph for this function:
The SemaphoreSlim for the WatchdogBase.
-Definition at line 120 of file WatchdogBase.cs.
+Definition at line 119 of file WatchdogBase.cs.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDump(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDump(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4640,9 +4640,9 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 72 of file WatchdogBase.cs.
+Definition at line 71 of file WatchdogBase.cs.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), and Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable().
@@ -4670,10 +4670,10 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 66 of file WatchdogBase.cs.
- 66{ get; protected set; }
+
Definition at line 65 of file WatchdogBase.cs.
+
65{ get; protected set; }
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4701,8 +4701,8 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 63 of file WatchdogBase.cs.
-
@@ -4728,8 +4728,8 @@ Here is the caller graph for this function:
The IAsyncDelayer for the WatchdogBase.
-Definition at line 105 of file WatchdogBase.cs.
-
@@ -4755,10 +4755,10 @@ Here is the caller graph for this function:
The IChatManager for the WatchdogBase.
-Definition at line 90 of file WatchdogBase.cs.
- 90{ get; }
+
Definition at line 89 of file WatchdogBase.cs.
+
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4786,10 +4786,10 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 42 of file WatchdogBase.cs.
-
@@ -4815,8 +4815,8 @@ Here is the caller graph for this function:
The IDmbFactory for the WatchdogBase.
-Definition at line 100 of file WatchdogBase.cs.
-
@@ -4842,10 +4842,10 @@ Here is the caller graph for this function:
The IIOManager for the WatchdogBase pointing to the Game directory.
-Definition at line 110 of file WatchdogBase.cs.
-
@@ -4873,10 +4873,10 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 69 of file WatchdogBase.cs.
-
@@ -4904,7 +4904,7 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 45 of file WatchdogBase.cs.
+Definition at line 44 of file WatchdogBase.cs.
@@ -4930,10 +4930,10 @@ Here is the caller graph for this function:
The ILogger for the WatchdogBase.
-Definition at line 85 of file WatchdogBase.cs.
- 85{ get; }
+
Definition at line 84 of file WatchdogBase.cs.
+
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.ApplyInitialDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Broadcast(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CanUseSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.DrainDeploymentCleanupTasks(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitialCheckDmbUpdated(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.InitialLink(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PerformDmbSwap(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PrepServerForLaunch(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StopMonitor(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.ApplyInitialDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Broadcast(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.CanUseSwappableDmbProvider(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAsync(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.DrainDeploymentCleanupTasks(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.InitialCheckDmbUpdated(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.InitialLink(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PerformDmbSwap(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.PrepServerForLaunch(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StopMonitor(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -4961,7 +4961,7 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 60 of file WatchdogBase.cs.
+Definition at line 59 of file WatchdogBase.cs.
@@ -4989,8 +4989,8 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 75 of file WatchdogBase.cs.
-
@@ -5016,8 +5016,8 @@ Here is the caller graph for this function:
The ISessionControllerFactory for the WatchdogBase.
-Definition at line 95 of file WatchdogBase.cs.
-
@@ -5045,7 +5045,7 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 39 of file WatchdogBase.cs.
+Definition at line 38 of file WatchdogBase.cs.
Referenced by Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitController().
@@ -5073,8 +5073,8 @@ Here is the caller graph for this function:
The ISessionPersistor for the WatchdogBase.
-Definition at line 80 of file WatchdogBase.cs.
-
@@ -5102,19 +5102,19 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.
-Definition at line 48 of file WatchdogBase.cs.
- 49 {
-
-
51 protected set
-
52 {
-
-
-
-
56 }
-
57 }
-
WatchdogStatus status
Backing field for Status.
+
Definition at line 47 of file WatchdogBase.cs.
+
48 {
+
+
50 protected set
+
51 {
+
+
+
+
55 }
+
56 }
+
WatchdogStatus status
Backing field for Status.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html
index 4962b270fa..ba5bbbd56b 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html
@@ -664,11 +664,11 @@ Additional Inherited Members
78 {
79 }
-readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
-readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
-readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
-readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
-readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
+readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+readonly bool autoStart
If the WatchdogBase should LaunchNoLock(bool, bool, bool, ReattachInformation, CancellationToken) in ...
+readonly IEventConsumer eventConsumer
The IEventConsumer that is not the WatchdogBase.
+readonly IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory
The IRemoteDeploymentManagerFactory for the WatchdogBase.
+readonly IIOManager diagnosticsIOManager
The IIOManager pointing to the Diagnostics directory.
@@ -714,12 +714,12 @@ Additional Inherited Members
async ValueTask< IDmbProvider?> FromCompileJob(CompileJob compileJob, string reason, CancellationToken cancellationToken, [CallerFilePath] string? callerFile=null, [CallerLineNumber] int callerLine=default)
Gets a IDmbProvider for a given CompileJob.A ValueTask<TResult> resulting in a new IDmbProvider repre...
ISessionController? Server
The single ISessionController.
-ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
+ILogger< WatchdogBase > Logger
The ILogger for the WatchdogBase.
Models.CompileJob CompileJob
Gets the CompileJob associated with the ISessionController.
EngineVersion EngineVersion
Gets the Api.Models.EngineVersion associated with the ISessionController.
EngineType
The type of engine the codebase is using.
-References Tgstation.Server.Api.Models.EngineVersion.Engine, Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger.
+References Tgstation.Server.Api.Models.EngineVersion.Engine, Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Logger.
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html
index c12cc95a8c..30b47f2071 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html
@@ -1207,7 +1207,7 @@ Here is the caller graph for this function:
IPostWriteHandler for POSIX systems.
An IIOManager that resolve relative paths from another IIOManager to a subdirectory of that.
-IFilesystemLinkFactory for windows systems.
+IFilesystemLinkFactory for windows systems.
IPostWriteHandler for Windows systems.
Handles mapping groups for the JobsHub.
@@ -1227,7 +1227,7 @@ Here is the caller graph for this function:
Implements the SystemD notify service protocol.
-
+
Implementation of the file transfer service.
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_filesystem_link_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_filesystem_link_factory.html
index 84f663d023..ae12ca4284 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_filesystem_link_factory.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_filesystem_link_factory.html
@@ -142,7 +142,7 @@ Properties
IFilesystemLinkFactory for windows systems.
-
Definition at line 15 of file WindowsFilesystemLinkFactory.cs.
+
Definition at line 14 of file WindowsFilesystemLinkFactory.cs.
◆ CreateHardLink()
@@ -275,7 +275,7 @@ Here is the call graph for this function:
Implements Tgstation.Server.Host.IO.IFilesystemLinkFactory.
-Definition at line 18 of file WindowsFilesystemLinkFactory.cs.
+Definition at line 17 of file WindowsFilesystemLinkFactory.cs.
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_wix_1_1_extensions_1_1_installation_extensions.html b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_wix_1_1_extensions_1_1_installation_extensions.html
index 89efbea833..de2e2548e7 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_wix_1_1_extensions_1_1_installation_extensions.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_wix_1_1_extensions_1_1_installation_extensions.html
@@ -323,7 +323,7 @@ Here is the call graph for this function:
Package name.
-
As much as I'd like to use Tgstation.Server.Common.Constants.CanonicalPackageName here, attempting to reference it makes Tgstation.Server.Migrator.Comms fail due to referencing the net2.0 version of that library. EVEN THOUGH IT'S A TRANSITIVE DEPENDENCY OF Tgstation.Server.Client!!!!! If that dead-ass tool has been removed, feel free to do this.
+
As much as I'd like to use Tgstation.Server.Common.Constants.CanonicalPackageName here, attempting to reference it makes VS go crazy with fake errors.
Definition at line 20 of file InstallationExtensions.cs.
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_native_methods.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_native_methods.html
index e74ae4ee69..566b68aeff 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_native_methods.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_native_methods.html
@@ -369,7 +369,7 @@ Here is the caller graph for this function:
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-enumchildwindows.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.GetAllChildHandles().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.GetAllChildHandles().
@@ -443,7 +443,7 @@ Here is the caller graph for this function:
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-findwindoww.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
@@ -491,7 +491,7 @@ Here is the caller graph for this function:
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getwindowtextw.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
@@ -533,7 +533,7 @@ Here is the caller graph for this function:
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getwindowthreadprocessid.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
@@ -851,7 +851,7 @@ Here is the caller graph for this function:
See https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-sendmessage.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html
index 76eb68a565..6ef52cb6c2 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html
@@ -172,7 +172,7 @@ Static Private Attributes
◆ WindowsNetworkPromptReaper()
@@ -209,18 +209,18 @@ Static Private Attributes
-
Definition at line 93 of file WindowsNetworkPromptReaper.cs.
-
@@ -269,20 +269,20 @@ Static Private Attributes
- Returns
true if enumeration should continue, false otherwise.
-Definition at line 52 of file WindowsNetworkPromptReaper.cs.
- 53 {
-
54 var gcChildhandlesList = GCHandle.FromIntPtr(lParam);
-
55
-
56 if (gcChildhandlesList.Target == null)
-
57 return false;
-
58
-
59 var childHandles = (List<IntPtr>)gcChildhandlesList.Target;
-
60 childHandles.Add(hWnd);
-
61
-
62 return true;
-
63 }
+
Definition at line 51 of file WindowsNetworkPromptReaper.cs.
+
52 {
+
53 var gcChildhandlesList = GCHandle.FromIntPtr(lParam);
+
54
+
55 if (gcChildhandlesList.Target == null)
+
56 return false;
+
57
+
58 var childHandles = (List<IntPtr>)gcChildhandlesList.Target;
+
59 childHandles.Add(hWnd);
+
60
+
61 return true;
+
62 }
-
Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.GetAllChildHandles().
+
Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.GetAllChildHandles().
@@ -324,82 +324,82 @@ Here is the caller graph for this function:
-
Definition at line 125 of file WindowsNetworkPromptReaper.cs.
-
126 {
-
127 logger.LogDebug(
"Starting network prompt reaper...");
-
128 try
-
129 {
-
130 while (!cancellationToken.IsCancellationRequested)
-
131 {
-
-
133
-
134 IntPtr window;
-
135 int processId;
-
-
137 {
-
-
139 continue;
-
140
-
141 window = NativeMethods.FindWindow(null, "Network Accessibility");
-
142 if (window == IntPtr.Zero)
-
143 continue;
-
144
-
145
-
146 var threadId = NativeMethods.GetWindowThreadProcessId(window, out processId);
-
-
148 continue;
-
149 }
-
150
-
151 logger.LogTrace(
"Identified \"Network Accessibility\" window in owned process {pid}", processId);
-
152
-
153 var found = false;
-
-
155 {
-
156 const int MaxLength = 10;
-
157 var stringBuilder = new StringBuilder(MaxLength + 1);
-
158
-
159 if (NativeMethods.GetWindowText(childHandle, stringBuilder, MaxLength) == 0)
-
160 {
-
161 logger.LogWarning(
new Win32Exception(),
"Error calling GetWindowText!");
-
162 continue;
-
163 }
-
164
-
165 var windowText = stringBuilder.ToString();
-
166 if (windowText == "Yes")
-
167 {
-
168
-
169 logger.LogTrace(
"Sending \"Yes\" button clicks...");
-
-
171 {
-
172 const int BM_CLICK = 0x00F5;
-
173 var result = NativeMethods.SendMessage(childHandle, BM_CLICK, IntPtr.Zero, IntPtr.Zero);
-
174 }
-
175
-
176 found = true;
-
177 break;
-
178 }
-
179 }
-
180
-
181 if (!found)
-
182 logger.LogDebug(
"Unable to find \"Yes\" button for \"Network Accessibility\" window in owned process {pid}!", processId);
-
183 }
-
184 }
-
185 catch (OperationCanceledException ex)
-
186 {
-
187 logger.LogTrace(ex,
"Cancelled!");
-
188 }
-
189 finally
-
190 {
-
-
192 logger.LogTrace(
"Exiting network prompt reaper...");
-
193 }
-
194 }
-
const int SendMessageCount
Number of times to send the button click message. Should be at least 2 or it may fail to focus the wi...
-
const int RecheckDelayMs
Check for prompts each time this amount of milliseconds pass.
-
static List< IntPtr > GetAllChildHandles(IntPtr mainWindow)
Get all the child windows handles of a given mainWindow .
+
Definition at line 124 of file WindowsNetworkPromptReaper.cs.
+
125 {
+
126 logger.LogDebug(
"Starting network prompt reaper...");
+
127 try
+
128 {
+
129 while (!cancellationToken.IsCancellationRequested)
+
130 {
+
+
132
+
133 IntPtr window;
+
134 int processId;
+
+
136 {
+
+
138 continue;
+
139
+
140 window = NativeMethods.FindWindow(null, "Network Accessibility");
+
141 if (window == IntPtr.Zero)
+
142 continue;
+
143
+
144
+
145 var threadId = NativeMethods.GetWindowThreadProcessId(window, out processId);
+
+
147 continue;
+
148 }
+
149
+
150 logger.LogTrace(
"Identified \"Network Accessibility\" window in owned process {pid}", processId);
+
151
+
152 var found = false;
+
+
154 {
+
155 const int MaxLength = 10;
+
156 var stringBuilder = new StringBuilder(MaxLength + 1);
+
157
+
158 if (NativeMethods.GetWindowText(childHandle, stringBuilder, MaxLength) == 0)
+
159 {
+
160 logger.LogWarning(
new Win32Exception(),
"Error calling GetWindowText!");
+
161 continue;
+
162 }
+
163
+
164 var windowText = stringBuilder.ToString();
+
165 if (windowText == "Yes")
+
166 {
+
167
+
168 logger.LogTrace(
"Sending \"Yes\" button clicks...");
+
+
170 {
+
171 const int BM_CLICK = 0x00F5;
+
172 var result = NativeMethods.SendMessage(childHandle, BM_CLICK, IntPtr.Zero, IntPtr.Zero);
+
173 }
+
174
+
175 found = true;
+
176 break;
+
177 }
+
178 }
+
179
+
180 if (!found)
+
181 logger.LogDebug(
"Unable to find \"Yes\" button for \"Network Accessibility\" window in owned process {pid}!", processId);
+
182 }
+
183 }
+
184 catch (OperationCanceledException ex)
+
185 {
+
186 logger.LogTrace(ex,
"Cancelled!");
+
187 }
+
188 finally
+
189 {
+
+
191 logger.LogTrace(
"Exiting network prompt reaper...");
+
192 }
+
193 }
+
const int SendMessageCount
Number of times to send the button click message. Should be at least 2 or it may fail to focus the wi...
+
const int RecheckDelayMs
Check for prompts each time this amount of milliseconds pass.
+
static List< IntPtr > GetAllChildHandles(IntPtr mainWindow)
Get all the child windows handles of a given mainWindow .
ValueTask Delay(TimeSpan timeSpan, CancellationToken cancellationToken)
Create a Task that completes after a given timeSpan .
-
References Tgstation.Server.Host.System.WindowsNetworkPromptReaper.asyncDelayer, Tgstation.Server.Host.Utils.IAsyncDelayer.Delay(), Tgstation.Server.Host.System.NativeMethods.FindWindow(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.GetAllChildHandles(), Tgstation.Server.Host.System.NativeMethods.GetWindowText(), Tgstation.Server.Host.System.NativeMethods.GetWindowThreadProcessId(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.logger, Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RecheckDelayMs, Tgstation.Server.Host.System.WindowsNetworkPromptReaper.registeredProcesses, Tgstation.Server.Host.System.NativeMethods.SendMessage(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.SendMessageCount.
+
References Tgstation.Server.Host.System.WindowsNetworkPromptReaper.asyncDelayer, Tgstation.Server.Host.Utils.IAsyncDelayer.Delay(), Tgstation.Server.Host.System.NativeMethods.FindWindow(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.GetAllChildHandles(), Tgstation.Server.Host.System.NativeMethods.GetWindowText(), Tgstation.Server.Host.System.NativeMethods.GetWindowThreadProcessId(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.logger, Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RecheckDelayMs, Tgstation.Server.Host.System.WindowsNetworkPromptReaper.registeredProcesses, Tgstation.Server.Host.System.NativeMethods.SendMessage(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.SendMessageCount.
@@ -460,28 +460,28 @@ Here is the call graph for this function:
- Returns
- A List<T> of all the child handles of mainWindow .
-
Definition at line 70 of file WindowsNetworkPromptReaper.cs.
-
71 {
-
72 var childHandles = new List<IntPtr>();
-
73 var gcChildhandlesList = GCHandle.Alloc(childHandles);
-
74 try
-
75 {
-
76 var pointerChildHandlesList = GCHandle.ToIntPtr(gcChildhandlesList);
-
77 NativeMethods.EnumWindowProc childProc =
new(
EnumWindow);
-
78 NativeMethods.EnumChildWindows(mainWindow, childProc, pointerChildHandlesList);
-
79 }
-
80 finally
-
81 {
-
82 gcChildhandlesList.Free();
-
83 }
-
84
-
85 return childHandles;
-
86 }
-
static bool EnumWindow(IntPtr hWnd, IntPtr lParam)
Callback for NativeMethods.EnumChildWindows(IntPtr, NativeMethods.EnumWindowProc, IntPtr).
+
Definition at line 69 of file WindowsNetworkPromptReaper.cs.
+
70 {
+
71 var childHandles = new List<IntPtr>();
+
72 var gcChildhandlesList = GCHandle.Alloc(childHandles);
+
73 try
+
74 {
+
75 var pointerChildHandlesList = GCHandle.ToIntPtr(gcChildhandlesList);
+
76 NativeMethods.EnumWindowProc childProc =
new(
EnumWindow);
+
77 NativeMethods.EnumChildWindows(mainWindow, childProc, pointerChildHandlesList);
+
78 }
+
79 finally
+
80 {
+
81 gcChildhandlesList.Free();
+
82 }
+
83
+
84 return childHandles;
+
85 }
+
static bool EnumWindow(IntPtr hWnd, IntPtr lParam)
Callback for NativeMethods.EnumChildWindows(IntPtr, NativeMethods.EnumWindowProc, IntPtr).
-
References Tgstation.Server.Host.System.NativeMethods.EnumChildWindows(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.EnumWindow().
+
References Tgstation.Server.Host.System.NativeMethods.EnumChildWindows(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.EnumWindow().
-
Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
+
Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
@@ -533,29 +533,29 @@ Here is the caller graph for this function:
Implements Tgstation.Server.Host.System.INetworkPromptReaper.
-
Definition at line 102 of file WindowsNetworkPromptReaper.cs.
-
103 {
-
104 ArgumentNullException.ThrowIfNull(process);
-
105
-
-
107 {
-
-
109 throw new InvalidOperationException("This process has already been registered for network prompt reaping!");
-
110 logger.LogTrace(
"Registering process {pid}...", process.Id);
-
-
112 }
-
113
-
114 process.Lifetime.ContinueWith(
-
115 x =>
-
116 {
-
117 logger.LogTrace(
"Unregistering process {pid}...", process.Id);
-
-
-
120 },
-
121 TaskScheduler.Current);
-
122 }
+
Definition at line 101 of file WindowsNetworkPromptReaper.cs.
+
102 {
+
103 ArgumentNullException.ThrowIfNull(process);
+
104
+
+
106 {
+
+
108 throw new InvalidOperationException("This process has already been registered for network prompt reaping!");
+
109 logger.LogTrace(
"Registering process {pid}...", process.Id);
+
+
111 }
+
112
+
113 process.Lifetime.ContinueWith(
+
114 x =>
+
115 {
+
116 logger.LogTrace(
"Unregistering process {pid}...", process.Id);
+
+
+
119 },
+
120 TaskScheduler.Current);
+
121 }
-
References Tgstation.Server.Host.System.IProcess.Id, Tgstation.Server.Host.System.IProcessBase.Lifetime, Tgstation.Server.Host.System.WindowsNetworkPromptReaper.logger, and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.registeredProcesses.
+
References Tgstation.Server.Host.System.IProcess.Id, Tgstation.Server.Host.System.IProcessBase.Lifetime, Tgstation.Server.Host.System.WindowsNetworkPromptReaper.logger, and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.registeredProcesses.
@@ -582,9 +582,9 @@ Here is the caller graph for this function:
The IAsyncDelayer for the WindowsNetworkPromptReaper.
-
Definition at line 34 of file WindowsNetworkPromptReaper.cs.
+
Definition at line 33 of file WindowsNetworkPromptReaper.cs.
-
Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.WindowsNetworkPromptReaper().
+
Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.WindowsNetworkPromptReaper().
@@ -610,9 +610,9 @@ Here is the caller graph for this function:
The ILogger for the WindowsNetworkPromptReaper.
-Definition at line 39 of file WindowsNetworkPromptReaper.cs.
+Definition at line 38 of file WindowsNetworkPromptReaper.cs.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RegisterProcess(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.WindowsNetworkPromptReaper().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RegisterProcess(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.WindowsNetworkPromptReaper().
@@ -638,9 +638,9 @@ Here is the caller graph for this function:
Check for prompts each time this amount of milliseconds pass.
-Definition at line 29 of file WindowsNetworkPromptReaper.cs.
+Definition at line 28 of file WindowsNetworkPromptReaper.cs.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
@@ -666,9 +666,9 @@ Here is the caller graph for this function:
The list of IProcesss registered.
-Definition at line 44 of file WindowsNetworkPromptReaper.cs.
+Definition at line 43 of file WindowsNetworkPromptReaper.cs.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RegisterProcess(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.WindowsNetworkPromptReaper().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RegisterProcess(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.WindowsNetworkPromptReaper().
@@ -694,9 +694,9 @@ Here is the caller graph for this function:
Number of times to send the button click message. Should be at least 2 or it may fail to focus the window.
-Definition at line 24 of file WindowsNetworkPromptReaper.cs.
+Definition at line 23 of file WindowsNetworkPromptReaper.cs.
-Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
+Referenced by Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_async_delayer.html b/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_async_delayer.html
index 6ec3f6b4b7..1c1061a0e5 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_async_delayer.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_async_delayer.html
@@ -238,7 +238,7 @@ Private Attributes
References Tgstation.Server.Host.Utils.AsyncDelayer.logger.
-Referenced by Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.HardDisconnect(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Chat.Providers.Provider.ReconnectionLoop(), and Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.SaslAuthenticate().
+Referenced by Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.HardDisconnect(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Chat.Providers.Provider.ReconnectionLoop(), and Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.SaslAuthenticate().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_semaphore_slim_context.html b/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_semaphore_slim_context.html
index 99a6b8780e..d326a2dd32 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_semaphore_slim_context.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_semaphore_slim_context.html
@@ -291,7 +291,7 @@ Private Attributes
References Tgstation.Server.Host.Utils.SemaphoreSlimContext.logger.
-Referenced by Tgstation.Server.Host.Components.Chat.ChatManager.ChangeChannels(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Engine.EngineManager.ChangeVersion(), Tgstation.Server.Host.Components.Repository.RepositoryManager.CloneRepository(), Tgstation.Server.Host.IO.DefaultIOManager.CopyDirectoryImpl(), Tgstation.Server.Host.Components.StaticFiles.Configuration.CopyDMFilesTo(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDump(), Tgstation.Server.Host.Components.Chat.ChatManager.DeleteConnection(), Tgstation.Server.Host.Components.Repository.RepositoryManager.DeleteRepository(), Tgstation.Server.Host.Components.Engine.EngineManager.DeleteVersion(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.StaticFiles.Configuration.ExecuteEventScripts(), Tgstation.Server.Host.GraphQL.Types.UpdateInformation.GetAdministrationResponseSafe(), Tgstation.Server.Host.Utils.PortAllocator.GetAvailablePort(), Tgstation.Server.Host.Utils.GitHub.GitHubClientFactory.GetOrCreateClient(), Tgstation.Server.Host.IO.BufferedFileStreamProvider.GetResultInternal(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Engine.WindowsByondInstaller.InstallDirectX(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Utils.FifoSemaphore.Lock(), Tgstation.Server.Host.Components.Deployment.HardLinkDmbProvider.MirrorDirectoryImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.InstanceManager.MoveInstance(), Tgstation.Server.Host.Components.InstanceManager.OfflineInstance(), Tgstation.Server.Host.Components.InstanceManager.OnlineInstance(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate(), and Tgstation.Server.Host.Components.Engine.WindowsByondInstaller.TrustDmbPath().
+Referenced by Tgstation.Server.Host.Components.Chat.ChatManager.ChangeChannels(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Engine.EngineManager.ChangeVersion(), Tgstation.Server.Host.Components.Repository.RepositoryManager.CloneRepository(), Tgstation.Server.Host.IO.DefaultIOManager.CopyDirectoryImpl(), Tgstation.Server.Host.Components.StaticFiles.Configuration.CopyDMFilesTo(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.CreateDump(), Tgstation.Server.Host.Components.Chat.ChatManager.DeleteConnection(), Tgstation.Server.Host.Components.Repository.RepositoryManager.DeleteRepository(), Tgstation.Server.Host.Components.Engine.EngineManager.DeleteVersion(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.DisposeAndNullControllers(), Tgstation.Server.Host.Components.StaticFiles.Configuration.ExecuteEventScripts(), Tgstation.Server.Host.GraphQL.Types.UpdateInformation.GetAdministrationResponseSafe(), Tgstation.Server.Host.Utils.PortAllocator.GetAvailablePort(), Tgstation.Server.Host.Utils.GitHub.GitHubClientFactory.GetOrCreateClient(), Tgstation.Server.Host.IO.BufferedFileStreamProvider.GetResultInternal(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.Engine.WindowsByondInstaller.InstallDirectX(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Utils.FifoSemaphore.Lock(), Tgstation.Server.Host.Components.Deployment.HardLinkDmbProvider.MirrorDirectoryImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.InstanceManager.MoveInstance(), Tgstation.Server.Host.Components.InstanceManager.OfflineInstance(), Tgstation.Server.Host.Components.InstanceManager.OnlineInstance(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate(), and Tgstation.Server.Host.Components.Engine.WindowsByondInstaller.TrustDmbPath().
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_serilog_context_helper.html b/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_serilog_context_helper.html
index a1c67029dd..be18a8945d 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_serilog_context_helper.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_utils_1_1_serilog_context_helper.html
@@ -505,7 +505,7 @@ Static Private Attributes
Definition at line 31 of file SerilogContextHelper.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html
index 4d715c0750..a31b74321e 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html
@@ -440,7 +440,7 @@ Here is the caller graph for this function:
Implemented in Tgstation.Server.Host.Components.Chat.ChatManager.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), and Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeCommand().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatResponses(), and Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeCommand().
@@ -489,7 +489,7 @@ Here is the caller graph for this function:
Implemented in Tgstation.Server.Host.Components.Chat.ChatManager.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleHealthCheck(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.AdvancedWatchdog.HandleNormalReboot(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.LaunchNoLock(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ReattachFailure(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.TerminateNoLock().
@@ -565,7 +565,7 @@ Here is the caller graph for this function:
Implemented in Tgstation.Server.Host.Components.Chat.ChatManager.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
@@ -606,7 +606,7 @@ Here is the caller graph for this function:
Implemented in Tgstation.Server.Host.Components.Chat.ChatManager.
-Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync().
+Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_remote_1_1_i_remote_deployment_manager_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_remote_1_1_i_remote_deployment_manager_factory.html
index 45efafb99c..f8a41338ce 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_remote_1_1_i_remote_deployment_manager_factory.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_remote_1_1_i_remote_deployment_manager_factory.html
@@ -189,7 +189,7 @@ Public Member Functions
Implemented in Tgstation.Server.Host.Components.Deployment.Remote.RemoteDeploymentManagerFactory.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanRegisteredCompileJob(), Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LoadCompileJob(), and Tgstation.Server.Host.Components.Instance.RepositoryAutoUpdateJob().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanRegisteredCompileJob(), Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LoadCompileJob(), and Tgstation.Server.Host.Components.Instance.RepositoryAutoUpdateJob().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html
index dd34a6b852..d957759a18 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html
@@ -242,7 +242,7 @@ Here is the caller graph for this function:
Implemented in Tgstation.Server.Host.Components.Events.EventConsumer, Tgstation.Server.Host.Components.Events.NoopEventConsumer, Tgstation.Server.Host.Components.StaticFiles.Configuration, and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.
-
Referenced by Tgstation.Server.Host.Components.Repository.Repository.AddTestMerge(), Tgstation.Server.Host.Components.Engine.EngineManager.AssertAndLockVersion(), Tgstation.Server.Host.Components.Instance.AutoUpdateAction(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Engine.EngineManager.ChangeVersion(), Tgstation.Server.Host.Components.Repository.Repository.CheckoutObject(), Tgstation.Server.Host.Components.Deployment.DreamMaker.Compile(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.CreateGameServerProcess(), Tgstation.Server.Host.Components.Deployment.DmbFactory.DeleteCompileJobContent(), Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Host.Components.Repository.Repository.FetchOrigin(), Tgstation.Server.Host.Components.Events.EventConsumer.HandleEvent(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Repository.Repository.MergeOrigin(), Tgstation.Server.Host.Components.Repository.Repository.ResetToOrigin(), and Tgstation.Server.Host.Components.Deployment.DreamMaker.RunCompileJob().
+
Referenced by Tgstation.Server.Host.Components.Repository.Repository.AddTestMerge(), Tgstation.Server.Host.Components.Engine.EngineManager.AssertAndLockVersion(), Tgstation.Server.Host.Components.Instance.AutoUpdateAction(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.BeforeApplyDmb(), Tgstation.Server.Host.Components.Engine.EngineManager.ChangeVersion(), Tgstation.Server.Host.Components.Repository.Repository.CheckoutObject(), Tgstation.Server.Host.Components.Deployment.DreamMaker.Compile(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.CreateGameServerProcess(), Tgstation.Server.Host.Components.Deployment.DmbFactory.DeleteCompileJobContent(), Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Host.Components.Repository.Repository.FetchOrigin(), Tgstation.Server.Host.Components.Events.EventConsumer.HandleEvent(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleEventImpl(), Tgstation.Server.Host.Components.Repository.Repository.MergeOrigin(), Tgstation.Server.Host.Components.Repository.Repository.ResetToOrigin(), and Tgstation.Server.Host.Components.Deployment.DreamMaker.RunCompileJob().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller.html
index b0fe0b889f..a9bec4af0a 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller.html
@@ -538,7 +538,7 @@ Properties
Definition at line 45 of file ISessionController.cs.
-
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings().
+
Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control.html
index d369843245..5a59dbd5e2 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control.html
@@ -244,7 +244,7 @@ Here is the caller graph for this function:
Implemented in Tgstation.Server.Host.Server.
-Referenced by Tgstation.Server.Host.Components.Chat.ChatManager.ChatManager(), Tgstation.Server.Host.System.SystemDManager.SystemDManager(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
+Referenced by Tgstation.Server.Host.Components.Chat.ChatManager.ChatManager(), Tgstation.Server.Host.System.SystemDManager.SystemDManager(), and Tgstation.Server.Host.Components.Watchdog.WatchdogBase.WatchdogBase().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html
index 28555631bc..6cd6eab550 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html
@@ -231,7 +231,7 @@ Here is the caller graph for this function:
Implemented in Tgstation.Server.Host.Jobs.JobService.
-Referenced by Tgstation.Server.Host.Components.Instance.AutoUpdateAction(), Tgstation.Server.Host.Controllers.RepositoryController.Create(), Tgstation.Server.Host.Controllers.DreamDaemonController.Create(), Tgstation.Server.Host.Controllers.DreamMakerController.Create(), Tgstation.Server.Host.Controllers.DreamDaemonController.CreateDump(), Tgstation.Server.Host.Controllers.EngineController.Delete(), Tgstation.Server.Host.Controllers.RepositoryController.Delete(), Tgstation.Server.Host.Controllers.RepositoryController.Reclone(), Tgstation.Server.Host.Components.Chat.Providers.Provider.ReconnectionLoop(), Tgstation.Server.Host.Controllers.DreamDaemonController.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Controllers.EngineController.Update(), Tgstation.Server.Host.Controllers.InstanceController.Update(), and Tgstation.Server.Host.Controllers.RepositoryController.Update().
+Referenced by Tgstation.Server.Host.Components.Instance.AutoUpdateAction(), Tgstation.Server.Host.Controllers.RepositoryController.Create(), Tgstation.Server.Host.Controllers.DreamDaemonController.Create(), Tgstation.Server.Host.Controllers.DreamMakerController.Create(), Tgstation.Server.Host.Controllers.DreamDaemonController.CreateDump(), Tgstation.Server.Host.Controllers.EngineController.Delete(), Tgstation.Server.Host.Controllers.RepositoryController.Delete(), Tgstation.Server.Host.Controllers.RepositoryController.Reclone(), Tgstation.Server.Host.Components.Chat.Providers.Provider.ReconnectionLoop(), Tgstation.Server.Host.Controllers.DreamDaemonController.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Controllers.EngineController.Update(), Tgstation.Server.Host.Controllers.InstanceController.Update(), and Tgstation.Server.Host.Controllers.RepositoryController.Update().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html
index 151d2e7e38..36c65d1f60 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html
@@ -318,7 +318,7 @@ Here is the caller graph for this function:
Definition at line 15 of file IProcess.cs.
-Referenced by Tgstation.Server.Host.System.DotnetDumpService.Dump(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RegisterProcess().
+Referenced by Tgstation.Server.Host.System.DotnetDumpService.Dump(), and Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RegisterProcess().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base.html
index 06139497ff..cdffa05db1 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base.html
@@ -319,7 +319,7 @@ Here is the caller graph for this function:
Definition at line 20 of file IProcessBase.cs.
-Referenced by Tgstation.Server.Host.Components.Session.SessionController.GetLaunchResult(), Tgstation.Server.Host.Components.Session.SessionController.PostValidationShutdown(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RegisterProcess(), Tgstation.Server.Host.Components.Session.SessionController.SessionController(), Tgstation.Server.Host.Components.Engine.EngineInstallationBase.StopServerProcess(), and Tgstation.Server.Host.Components.Engine.OpenDreamInstallation.StopServerProcess().
+Referenced by Tgstation.Server.Host.Components.Session.SessionController.GetLaunchResult(), Tgstation.Server.Host.Components.Session.SessionController.PostValidationShutdown(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.RegisterProcess(), Tgstation.Server.Host.Components.Session.SessionController.SessionController(), Tgstation.Server.Host.Components.Engine.EngineInstallationBase.StopServerProcess(), and Tgstation.Server.Host.Components.Engine.OpenDreamInstallation.StopServerProcess().
diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html b/interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html
index 94adcce1bc..1a7e930b72 100644
--- a/interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html
+++ b/interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html
@@ -143,7 +143,7 @@ Public Member Functions
Implemented in Tgstation.Server.Host.Utils.AsyncDelayer.
-Referenced by Tgstation.Server.Host.Swarm.SwarmService.CommitUpdate(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync(), Tgstation.Server.Host.Core.VersionReportingService.ExecuteAsync(), Tgstation.Server.Host.Components.Session.SessionController.GetLaunchResult(), Tgstation.Server.Host.Security.IdentityCacheObject.IdentityCacheObject(), Tgstation.Server.Host.Components.InstanceManager.InitializeSwarm(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LogLockStates(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.PortBindTest(), Tgstation.Server.Host.Components.Session.SessionController.PostValidationShutdown(), Tgstation.Server.Host.Components.InstanceManager.ProcessBridgeRequest(), Tgstation.Server.Host.Transfer.FileTransferService.QueueExpiry(), Tgstation.Server.Host.Extensions.TopicClientExtensions.SendWithOptionalPriority(), Tgstation.Server.Host.System.PosixSignalHandler.SignalChecker(), and Tgstation.Server.Host.Components.Instance.TimerLoop().
+Referenced by Tgstation.Server.Host.Swarm.SwarmService.CommitUpdate(), Tgstation.Server.Host.System.WindowsNetworkPromptReaper.ExecuteAsync(), Tgstation.Server.Host.Core.VersionReportingService.ExecuteAsync(), Tgstation.Server.Host.Components.Session.SessionController.GetLaunchResult(), Tgstation.Server.Host.Security.IdentityCacheObject.IdentityCacheObject(), Tgstation.Server.Host.Components.InstanceManager.InitializeSwarm(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LogLockStates(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.PortBindTest(), Tgstation.Server.Host.Components.Session.SessionController.PostValidationShutdown(), Tgstation.Server.Host.Components.InstanceManager.ProcessBridgeRequest(), Tgstation.Server.Host.Transfer.FileTransferService.QueueExpiry(), Tgstation.Server.Host.Extensions.TopicClientExtensions.SendWithOptionalPriority(), Tgstation.Server.Host.System.PosixSignalHandler.SignalChecker(), and Tgstation.Server.Host.Components.Instance.TimerLoop().