mirror of
https://github.com/ZuneDev/MicrosoftIris.git
synced 2026-07-27 13:13:29 -07:00
Handle disposing of debugger server
This commit is contained in:
@@ -195,7 +195,7 @@ namespace Microsoft.Iris
|
||||
|
||||
if (DebugSettings.DebugConnectionUri != null)
|
||||
{
|
||||
Debugger = new Debug.NetMQ.ZmqDebuggerServer(DebugSettings.DebugConnectionUri);
|
||||
Debugger = new Debug.SystemNet.NetDebuggerServer(DebugSettings.DebugConnectionUri);
|
||||
DebuggerServerReady?.Invoke(Debugger, EventArgs.Empty);
|
||||
}
|
||||
|
||||
@@ -309,7 +309,11 @@ namespace Microsoft.Iris
|
||||
if (s_initializationState == InitializationState.InitializedWithoutUI)
|
||||
RenderApi.ShutdownForToolOnly();
|
||||
StaticServices.Uninitialize();
|
||||
|
||||
Debug.Trace.Shutdown();
|
||||
if (Debugger is IDisposable disposable)
|
||||
disposable.Dispose();
|
||||
|
||||
ErrorManager.OnErrors -= new NotifyErrorBatch(NotifyErrorBatchHandler);
|
||||
s_initializationState = InitializationState.NotInitialized;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ internal class NetDebuggerServer : IDebuggerServer, IDisposable
|
||||
private readonly TcpListener _listener;
|
||||
private readonly IFormatter _formatter;
|
||||
private Socket _socket;
|
||||
private bool _disposed = false;
|
||||
|
||||
public NetDebuggerServer(string connectionUri) : this(new Uri(connectionUri))
|
||||
{
|
||||
@@ -54,6 +55,10 @@ internal class NetDebuggerServer : IDebuggerServer, IDisposable
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
|
||||
_disposed = true;
|
||||
_listener.Stop();
|
||||
_socket?.Dispose();
|
||||
}
|
||||
@@ -94,7 +99,8 @@ internal class NetDebuggerServer : IDebuggerServer, IDisposable
|
||||
|
||||
private void ConnectLoop()
|
||||
{
|
||||
while (!_listener.Pending()) ;
|
||||
while (!_listener.Pending())
|
||||
if (_disposed) return;
|
||||
|
||||
_socket = _listener.AcceptSocket();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user