Imported Upstream version 5.0.0.42

Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-04-10 11:41:01 +00:00
parent 1190d13a04
commit 6bdd276d05
19939 changed files with 3099680 additions and 93811 deletions

View File

@ -45,7 +45,7 @@ namespace System.Net.Sockets {
int error = 0;
Socket.Blocking_internal (handle, false, out error);
#if MOBILE_STATIC
#if FULL_AOT_DESKTOP
/* It's only for platforms that do not have working syscall abort mechanism, like WatchOS and TvOS */
Socket.Shutdown_internal (handle, SocketShutdown.Both, out error);
#endif
@ -127,9 +127,12 @@ namespace System.Net.Sockets {
{
//If this NRE, we're in deep problems because Register Must have
lock (blocking_threads) {
blocking_threads.Remove (Thread.CurrentThread);
if (THROW_ON_ABORT_RETRIES)
threads_stacktraces.Remove (Thread.CurrentThread);
var current = Thread.CurrentThread;
blocking_threads.Remove (current);
if (THROW_ON_ABORT_RETRIES) {
if (blocking_threads.IndexOf (current) == -1)
threads_stacktraces.Remove (current);
}
if (in_cleanup && blocking_threads.Count == 0)
Monitor.Pulse (blocking_threads);