Skip to content

Commit f75c2ea

Browse files
author
Tom Hauser
committed
implements the fix detailed here: sshnet#63 for blocking Read
1 parent bd01d97 commit f75c2ea

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/Renci.SshNet/ShellStream.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,15 +217,23 @@ public override int Read(byte[] buffer, int offset, int count)
217217
{
218218
var i = 0;
219219

220-
lock (_incoming)
220+
while (true)
221221
{
222-
for (; i < count && _incoming.Count > 0; i++)
222+
lock (_incoming)
223+
{
224+
for (; i < count && _incoming.Count > 0; i++)
225+
{
226+
buffer[offset + i] = _incoming.Dequeue();
227+
}
228+
}
229+
230+
if (i != 0)
223231
{
224-
buffer[offset + i] = _incoming.Dequeue();
232+
return i;
225233
}
226-
}
227234

228-
return i;
235+
_dataReceived.WaitOne();
236+
}
229237
}
230238

231239
/// <summary>

0 commit comments

Comments
 (0)