Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@ -234,7 +234,8 @@ namespace System.Net
return;
}
pending.WaitOne ();
if (!pending.WaitOne (ReadTimeout))
throw new WebException ("The operation has timed out.", WebExceptionStatus.Timeout);
lock (locker) {
if (totalRead >= contentLength)
return;
@ -592,6 +593,14 @@ namespace System.Net
if (result.EndCalled)
return;
if (sendChunked) {
lock (locker) {
pendingWrites--;
if (pendingWrites <= 0)
pending.Set ();
}
}
result.EndCalled = true;
if (result.AsyncWriteAll) {
result.WaitUntilComplete ();
@ -605,14 +614,6 @@ namespace System.Net
if (result.GotException)
throw result.Exception;
if (sendChunked) {
lock (locker) {
pendingWrites--;
if (pendingWrites == 0)
pending.Set ();
}
}
}
public override void Write (byte [] buffer, int offset, int size)
@ -775,7 +776,9 @@ namespace System.Net
if (disposed)
return;
disposed = true;
pending.WaitOne ();
if (!pending.WaitOne (WriteTimeout)) {
throw new WebException ("The operation has timed out.", WebExceptionStatus.Timeout);
}
byte [] chunk = Encoding.ASCII.GetBytes ("0\r\n\r\n");
string err_msg = null;
cnc.Write (request, chunk, 0, chunk.Length, ref err_msg);