mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-09 00:46:19 +00:00
added locks to socket
This commit is contained in:
parent
90dac4a0d6
commit
4b382ed480
@ -115,7 +115,7 @@ namespace CryptoExchange.Net.Sockets
|
|||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
if (socket == null || socket.State != WebSocketState.Open)
|
if (socket?.State != WebSocketState.Open)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (DateTime.UtcNow - LastActionTime > Timeout)
|
if (DateTime.UtcNow - LastActionTime > Timeout)
|
||||||
@ -164,17 +164,23 @@ namespace CryptoExchange.Net.Sockets
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Reset()
|
public virtual void Reset()
|
||||||
|
{
|
||||||
|
lock (socketLock)
|
||||||
{
|
{
|
||||||
socket.Dispose();
|
socket.Dispose();
|
||||||
socket = null;
|
socket = null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void Send(string data)
|
public virtual void Send(string data)
|
||||||
{
|
{
|
||||||
socket.Send(data);
|
lock (socketLock)
|
||||||
|
socket?.Send(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual async Task<bool> Connect()
|
public virtual async Task<bool> Connect()
|
||||||
|
{
|
||||||
|
lock (socketLock)
|
||||||
{
|
{
|
||||||
if (socket == null)
|
if (socket == null)
|
||||||
{
|
{
|
||||||
@ -190,6 +196,7 @@ namespace CryptoExchange.Net.Sockets
|
|||||||
socket.MessageReceived += (o, s) => Handle(messageHandlers, s.Message);
|
socket.MessageReceived += (o, s) => Handle(messageHandlers, s.Message);
|
||||||
socket.DataReceived += (o, s) => HandleByteData(s.Data);
|
socket.DataReceived += (o, s) => HandleByteData(s.Data);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return await Task.Run(() =>
|
return await Task.Run(() =>
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user