Skip to content

Commit 66e39c7

Browse files
authored
Merge pull request #107 from cnblogs/improve-connecting-socket
Improve connecting socket
2 parents 4abdaf9 + 0619474 commit 66e39c7

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

Enyim.Caching/Memcached/PooledSocket.cs

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,27 @@ public void Connect()
5858
cts.CancelAfter(_connectionTimeout);
5959
void Cancel()
6060
{
61-
if (!_socket.Connected)
61+
if (_socket != null && !_socket.Connected)
6262
{
6363
_socket.Dispose();
64+
_socket = null;
6465
}
6566
}
6667
cts.Token.Register(Cancel);
6768

6869
_socket.Connect(_endpoint);
69-
if (_socket.Connected)
70-
{
71-
success = true;
72-
}
73-
else
70+
71+
if (_socket != null)
7472
{
75-
_socket.Dispose();
73+
if (_socket.Connected)
74+
{
75+
success = true;
76+
}
77+
else
78+
{
79+
_socket.Dispose();
80+
_socket = null;
81+
}
7682
}
7783

7884
if (success)
@@ -94,14 +100,23 @@ public async Task ConnectAsync()
94100
{
95101
await connTask;
96102
}
97-
98-
if (_socket.Connected)
103+
else if (_socket != null)
99104
{
100-
success = true;
105+
_socket.Dispose();
106+
_socket = null;
101107
}
102-
else
108+
109+
if (_socket != null)
103110
{
104-
_socket.Dispose();
111+
if (_socket.Connected)
112+
{
113+
success = true;
114+
}
115+
else
116+
{
117+
_socket.Dispose();
118+
_socket = null;
119+
}
105120
}
106121

107122
if (success)

0 commit comments

Comments
 (0)