Imported Upstream version 4.2.0.179

Former-commit-id: 4610231f55806d2a05ed69e5ff3faa7336cc1479
This commit is contained in:
Xamarin Public Jenkins
2015-08-26 07:17:56 -04:00
committed by Jo Shields
parent aa7da660d6
commit c042cd0c52
7507 changed files with 90259 additions and 657307 deletions

View File

@@ -66,6 +66,8 @@ namespace System.Net
public void Close ()
{
List<WebConnection> connectionsToClose = null;
//TODO: what do we do with the queue? Empty it out and abort the requests?
//TODO: abort requests or wait for them to finish
lock (sPoint) {
@@ -76,7 +78,17 @@ namespace System.Net
var node = iter;
iter = iter.Next;
// Closing connections inside the lock leads to a deadlock.
if (connectionsToClose == null)
connectionsToClose = new List<WebConnection>();
connectionsToClose.Add (cnc);
connections.Remove (node);
}
}
if (connectionsToClose != null) {
foreach (var cnc in connectionsToClose) {
cnc.Close (false);
OnConnectionClosed ();
}