diff --git a/Messaging/StreamingMessageHandler.cs b/Messaging/StreamingMessageHandler.cs index 7f2c2df4ab08..9eb621a1a82c 100644 --- a/Messaging/StreamingMessageHandler.cs +++ b/Messaging/StreamingMessageHandler.cs @@ -37,6 +37,7 @@ public class StreamingMessageHandler : IMessagingHandler private PushSocket _server; private AlgorithmNodePacket _job; private OrderEventJsonConverter _orderEventJsonConverter; + private readonly object _socketLock = new object(); /// /// Gets or sets whether this messaging handler has any current subscribers. @@ -100,7 +101,10 @@ public void Transmit(Packet packet) message.Append(payload); - _server.SendMultipartMessage(message); + lock (_socketLock) + { + _server?.SendMultipartMessage(message); + } } /// @@ -126,6 +130,11 @@ private void CheckPort() /// public void Dispose() { + lock (_socketLock) + { + _server?.Dispose(); + _server = null; + } } } }