Merge pull request #769 from tgstation/767-DoubleDispose

Prevent InstanceManager.Dispose from being called twice
This commit is contained in:
Jordan Brown
2018-10-06 00:36:55 -04:00
committed by GitHub
@@ -49,6 +49,11 @@ namespace Tgstation.Server.Host.Components
/// </summary>
readonly Dictionary<long, IInstance> instances;
/// <summary>
/// If the <see cref="InstanceManager"/> has been <see cref="Dispose"/>d
/// </summary>
bool disposed;
/// <summary>
/// Construct an <see cref="InstanceManager"/>
/// </summary>
@@ -73,6 +78,12 @@ namespace Tgstation.Server.Host.Components
/// <inheritdoc />
public void Dispose()
{
lock (this)
{
if (disposed)
return;
disposed = true;
}
foreach (var I in instances)
I.Value.Dispose();
}