Jonathan Pryor [Mon, 10 Nov 2014 18:52:11 +0000 (13:52 -0500)]
Merge pull request #1393 from akoeplinger/refresh-mdoc-expected
[mdoc] Refreshed the en.expected.importecmadoc files to fix errors after the recent XML changes
Output was generated on .NET, and thus is canonical.
Marek Safar [Mon, 10 Nov 2014 15:08:24 +0000 (16:08 +0100)]
[mcs] Encode more win32 version info attributes. Fixes #23981
Marek Safar [Mon, 10 Nov 2014 11:03:23 +0000 (12:03 +0100)]
Merge pull request #1334 from ztone/delegate
Fix PrepareEmit error when evaluating delegates
Zoltan Varga [Mon, 10 Nov 2014 10:22:04 +0000 (05:22 -0500)]
[jit] Move the ppc sigctx<->monoctx conversion code to mono-context.c.
Zoltan Varga [Mon, 10 Nov 2014 10:06:51 +0000 (05:06 -0500)]
Remove some dead code.
Zoltan Varga [Mon, 10 Nov 2014 02:41:43 +0000 (21:41 -0500)]
Fix the android build.
Miguel de Icaza [Mon, 10 Nov 2014 01:17:50 +0000 (20:17 -0500)]
Merge pull request #1390 from woodsb02/FreeBSDMacNetworkInterfaces
Freebsd to use Mac NetworkInterface code instead of Linux NetworkInterface code
Zoltan Varga [Sun, 9 Nov 2014 23:30:15 +0000 (18:30 -0500)]
Merge pull request #1392 from ludovic-henry/pr34-proflog-counters-sample-shutdown
[proflog] Add counters sampling on profiler shutdown and startup
Zoltan Varga [Sat, 8 Nov 2014 18:27:28 +0000 (13:27 -0500)]
Merge pull request #1395 from ludovic-henry/pr38-proflog-only-counters
[proflog] Add onlycounters parameters which disable event dumping
Ludovic Henry [Fri, 7 Nov 2014 21:07:31 +0000 (16:07 -0500)]
[proflog] Add countersonly parameters which disable event dumping
This is useful in the case of the benchmarking suite because we are only interested in the counters, and they represent a minimal part of the output file size.
Zoltan Varga [Fri, 7 Nov 2014 23:50:26 +0000 (18:50 -0500)]
Fix a uninitialized variable warning.
Zoltan Varga [Fri, 7 Nov 2014 21:53:22 +0000 (16:53 -0500)]
Zoltan Varga [Fri, 7 Nov 2014 20:33:48 +0000 (15:33 -0500)]
[amd64] Make xmm6:xmm15 callee saved on winx64 as required by the ABI.
Mark Probst [Fri, 7 Nov 2014 20:14:48 +0000 (12:14 -0800)]
Merge pull request #1385 from BrzVlad/fin-hash
[sgen] Use hash based on current address for finalization hashes.
Alexander Köplinger [Fri, 7 Nov 2014 18:50:16 +0000 (19:50 +0100)]
[System] Fixed formatting of new ClientWebSocket test and disabled it
We need to have an implementation for HttpListenerContext.AcceptWebSocketAsync () first before it works.
Alexander Köplinger [Fri, 7 Nov 2014 18:34:27 +0000 (19:34 +0100)]
Merge branch 'patch-1' of https://github.com/ReubenBond/mono into ReubenBond-patch-1
Miguel de Icaza [Fri, 7 Nov 2014 17:20:29 +0000 (12:20 -0500)]
Merge pull request #1394 from kjpou1/master
Fix GetUsing to output the using name instead of -> using Mono.CSharp.Na...
Kenneth Pouncey [Fri, 7 Nov 2014 15:59:42 +0000 (16:59 +0100)]
Add space
Kenneth Pouncey [Fri, 7 Nov 2014 15:57:41 +0000 (16:57 +0100)]
Add space
Kenneth Pouncey [Fri, 7 Nov 2014 15:41:05 +0000 (16:41 +0100)]
Fix GetUsing to output the using name instead of -> using Mono.CSharp.NamespaceExpression; <- for every using statement that was set
+ Fix NRE when source_file or source_file.Usings is null. This will now return back an empty string or empty List
+ **Note** that we are returning the ToString() value of NamespaceExpression which is the full resolved namespace of "System.Drawing" instead of "Drawing".
+ Add ToString override for NamespaceExpression to return the full resolved name of the namespace.
Atsushi Eno [Fri, 7 Nov 2014 12:42:25 +0000 (20:42 +0800)]
[Mono.Posix] consider nano time info in UnixFileSystemInfo.Last*Time.
Before this change, those Last*Time properties returned only based on
seconds (truncated), which could cause inaccurate time comparison.
Consider code like this:
var fileUpdated = DateTime.Now;
...
File.WriteAllText (path, "foobar");
...
if (fileUpdated > new UnixFileInfo (path).LastWriteTime)
OnUpdatedFile (path);
This could always result in raising update event, even if there was
no update after writing.
Last*Time With milliseconds makes it very unlikely to happen.
Alexander Köplinger [Fri, 7 Nov 2014 11:34:26 +0000 (12:34 +0100)]
[mdoc] Refreshed the en.expected.importecmadoc files to fix errors after the recent XML changes
The XML work in
661430fd1f052c5589bcd5d116f37b9ee4e27210 and
bf39f5aec034800abcfe5e73a63ddd1414cb8078 changed the whitespace handling, so the mdoc test suite failed.
Refreshing the files makes them identical to what MS.NET produces and fixes the mdoc tests.
Atsushi Eno [Fri, 7 Nov 2014 07:35:40 +0000 (15:35 +0800)]
[xml] XmlElement.InnserXml seems to preserve whitespaces.
Fix for mdoc test regression (see commit comments on #
661430f).
Zoltan Varga [Fri, 7 Nov 2014 00:44:57 +0000 (19:44 -0500)]
[runtime] Use a separate signal with the SA_RESTART flag set for suspending/resuming threads during debugging on android, since lots of android native code cannot handle the interruptions caused by the normal abort signal. Fixes #22968/#23987.
Ludovic Henry [Thu, 6 Nov 2014 20:25:04 +0000 (15:25 -0500)]
[proflog] Add counters sampling on runtime initialized
Ludovic Henry [Thu, 6 Nov 2014 20:17:08 +0000 (15:17 -0500)]
[proflog] Add counters sampling on profiler shutdown
Ben Woods [Thu, 6 Nov 2014 09:27:36 +0000 (17:27 +0800)]
Freebsd to use Mac NetworkInterface code instead of Linux NetworkInterface code
Zoltan Varga [Wed, 5 Nov 2014 22:31:48 +0000 (17:31 -0500)]
Install Mono.Cecil in the net 4.5 profile.
Zoltan Varga [Wed, 5 Nov 2014 21:56:38 +0000 (16:56 -0500)]
Revert "Disable building the NET 2.0 profile by default."
This reverts commit
fe265502cc517e8374ce2988f31e88d4f3554d8a.
Revert this for now as it breaks too much stuff.
Marcos Henrich [Wed, 5 Nov 2014 16:38:39 +0000 (16:38 +0000)]
Changed script DateTime.Now_Test.sh to use the compiled csharp.exe.
Marcos Henrich [Wed, 5 Nov 2014 16:30:13 +0000 (16:30 +0000)]
TZ display name changes no longer reset adjustment rules.
Reset of adjustment rules is mandatory when the base offset is changed because the rules are relative to the base offset.
Adjustment rules are now kept until the base offset changes.
Radek Doulik [Wed, 5 Nov 2014 12:00:37 +0000 (13:00 +0100)]
[linker] blacklist System.Net.Sockets.MulticastOption fields
- merge fix for https://bugzilla.xamarin.com/show_bug.cgi?id=21578
the MulticastOption's 'private IPAddress local' field was
removed by linker and the app crashed later at runtime.
- when System.Net.Sockets.MulticastOption object
is passed to System.Net.Sockets.Socket.SetSocketOption
and thru it to System.Net.Sockets.Socket.SetSocketOption_internal
it accesses passed object fields
(thru few more native calls).
Zoltan Varga [Wed, 5 Nov 2014 04:18:11 +0000 (23:18 -0500)]
Merge pull request #1387 from akoeplinger/improve-bug652331_2
[System.ServiceModel] Fixed Bug652331_2 test that failed on Jenkins by increasing timeout
Zoltan Varga [Wed, 5 Nov 2014 03:45:14 +0000 (22:45 -0500)]
[arm] Fix OP_LOCALLOC on arm so it correctly adjusts sp with the param area size even if the size is large. Fixes #24221.
Rodrigo Kumpera [Wed, 5 Nov 2014 00:29:45 +0000 (19:29 -0500)]
[profiler] Expose new profiling modes and allow sampling rate to be set when using signal-based sampling.
Rodrigo Kumpera [Wed, 5 Nov 2014 00:27:20 +0000 (19:27 -0500)]
[profiler] Add new profiler API mono_profiler_set_statistical_mode that gives control to statistical mode and sampling rate.
Rodrigo Kumpera [Wed, 5 Nov 2014 00:06:27 +0000 (19:06 -0500)]
[profiler] Fix signal based profiling to sample all registered threads.
The current signal profiling code depended on invalid linux behavior of setitimer
allowing multiple threads to register for the same timer. Linux kernel 2.6.12 fixed
this and only the main thread gets the signal. Always.
The correct POSIX behavior happens on OSX/iOS.
On Linux we could use timer_create and SIGEV_THREAD_ID but that would not work on iOS/OSX
since it's specific to it. Given that little detail, I'll leave implementing it as an
exercise to the reader.
The solution, which aims to be as portable as possible, is to use a pair of signals and
have the first one fire the second one against all other threads.
We use a pair of signals since it's not well defined which thread will receive the signal
so detecting this from the signal is non-trivial.
Rodrigo Kumpera [Wed, 5 Nov 2014 00:02:15 +0000 (19:02 -0500)]
Make mono_threads_pthread_kill available to mach targets.
Zoltan Varga [Tue, 4 Nov 2014 23:24:27 +0000 (18:24 -0500)]
Make the build in docs/ uses the net 4.5 profile.
Zoltan Varga [Tue, 4 Nov 2014 22:49:18 +0000 (17:49 -0500)]
Disable building the NET 2.0 profile by default.
Zoltan Varga [Tue, 4 Nov 2014 21:44:39 +0000 (16:44 -0500)]
Fix the loadable llvm build.
Zoltan Varga [Tue, 4 Nov 2014 21:19:57 +0000 (16:19 -0500)]
[llvm] Add beginnings of support for emitting dwarf debug info for LLVM code. Not enabled yet, since it would clash with the dwarf info emitted by the AOT compiler for JITted code.
Alexander Köplinger [Tue, 4 Nov 2014 10:38:01 +0000 (11:38 +0100)]
[System.ServiceModel] Fixed Bug652331_2 test that failed on Jenkins by increasing timeout
Looks like the test takes quite a while so 10 seconds was just too short. Increasing the timeout to 20s seems to fix it.
Jonathan Pryor [Tue, 4 Nov 2014 19:26:32 +0000 (14:26 -0500)]
[mscorlib] Marshal.GetExceptionForHR() takes an `errorInfo` parameter.
Parameter names are part of the ABI because of C#4 named parameter.
Consequently, they *must* be consistent with .NET, and .NET a
parameter name of "errorInfo", *not* "errorInfoPtr" [0]:
public static Exception GetExceptionForHR(
int errorCode,
IntPtr errorInfo
)
Change the parameter name from `errorCodeInfo` to `errorCode` so that
the parameter name is consistent with .NET.
[0]: http://msdn.microsoft.com/en-us/library/3xade62s(v=vs.100).aspx
Alexander Köplinger [Tue, 4 Nov 2014 09:49:57 +0000 (10:49 +0100)]
Fix NET_2_0 build
Miguel de Icaza [Tue, 4 Nov 2014 17:51:53 +0000 (12:51 -0500)]
Merge pull request #1363 from martinjt/AddMembershipPasswordAttribute
Added the MembershipPasswordAttribute class and associated unit tests
Vlad Brezae [Thu, 30 Oct 2014 22:04:48 +0000 (15:04 -0700)]
[sgen] Use hash based on current address for finalization hashes.
Extend functionality of SgenPointerQueue.
The purpose of this commit is to avoid dependency between GC code and the obtaining of the hash from the object's synchronisation field, which might require additional processing.
Zoltan Varga [Mon, 3 Nov 2014 22:53:21 +0000 (17:53 -0500)]
[jit] Factor out duplicate code from the castclass/unbox.any opcode implementation.
Martin Thwaites [Fri, 24 Oct 2014 21:42:49 +0000 (22:42 +0100)]
Added the MembershipPasswordAttribute class and associated unit tests
Zoltan Varga [Mon, 3 Nov 2014 21:06:46 +0000 (16:06 -0500)]
[jit] Reenable the more efficient cast code in gshared methods.
Marcos Henrich [Mon, 3 Nov 2014 11:41:13 +0000 (11:41 +0000)]
Merge pull request #1185 from esdrubal/http-reuse
Allow stream reuse when InputStream has been disposed.
Miguel de Icaza [Sun, 2 Nov 2014 17:36:49 +0000 (12:36 -0500)]
Merge pull request #1347 from ermshiperete/ImproveEllipsisHandling
[MWF] Improve ellipsis handling
Alexander Köplinger [Fri, 31 Oct 2014 22:07:28 +0000 (23:07 +0100)]
Add missing newline in .sources file, should fix build
Miguel de Icaza [Sun, 2 Nov 2014 01:23:05 +0000 (21:23 -0400)]
[asp.net] Implement the EventHandlerTaskAsyncHelper and HttpTaskAsyncHandler classes; Manually bring Pull Request 1365 from Kornel Pal
Miguel de Icaza [Sun, 2 Nov 2014 00:50:48 +0000 (20:50 -0400)]
Merge pull request #1371 from martinjt/AddClientDisconnectedToken
Add ClientDisconnectedToken property to HttpResponseBase and Wrapper as ...
Miguel de Icaza [Sun, 2 Nov 2014 00:49:10 +0000 (20:49 -0400)]
Set ReadEntityBodyMode default to Classic to force clients to use the old method
for reading the input stream.
According to the MSDN docs, if ReadEntityBodyMode returns "Classic" the code should use
the old method to read the input stream (HttpRequestBase.InputStream) which is fully
implemented in mono.
Manually applied patch from martinjt
Miguel de Icaza [Sun, 2 Nov 2014 00:48:12 +0000 (20:48 -0400)]
[asp.net] Implement the EventHandlerTaskAsyncHelper and HttpTaskAsyncHandler classes; Manually bring Pull Request 1365 from Kornel Pal
Miguel de Icaza [Sun, 2 Nov 2014 00:36:49 +0000 (20:36 -0400)]
Merge pull request #1163 from AerisG222/more_mvc_fixes
Add missing elements to allow MVC5.2 site to run
Atsushi Eno [Fri, 31 Oct 2014 16:06:05 +0000 (00:06 +0800)]
[xml] XmlDocument.ReadNode() should not special case XmlTextReader.
Added test case that proves this change (by baulig).
Miguel de Icaza [Fri, 31 Oct 2014 15:20:20 +0000 (11:20 -0400)]
Merge pull request #960 from ermshiperete/ShowHelp
[MWF] Partially implement Help.ShowHelp
João Matos [Fri, 31 Oct 2014 13:52:33 +0000 (13:52 +0000)]
Merge pull request #1360 from madewokherd/winuncpath
File URI's without a host are not UNC paths on Windows.
Mark Probst [Thu, 30 Oct 2014 23:28:03 +0000 (16:28 -0700)]
[sgen] Add an explanatory comment about OOM.
Zoltan Varga [Thu, 30 Oct 2014 22:44:01 +0000 (18:44 -0400)]
[runtime] Fix the android build with ndk r10c.
Rodrigo Kumpera [Thu, 30 Oct 2014 22:43:36 +0000 (18:43 -0400)]
Merge pull request #1381 from schani/fix-23401
Fix 23401
Zoltan Varga [Thu, 30 Oct 2014 21:56:19 +0000 (17:56 -0400)]
[aot] Remove some obsolete TODOs.
Zoltan Varga [Thu, 30 Oct 2014 21:52:33 +0000 (17:52 -0400)]
[aot] Use the info->tramp_page_code_offsets array on arm as well.
Zoltan Varga [Thu, 30 Oct 2014 21:28:31 +0000 (17:28 -0400)]
Fix a warning.
Zoltan Varga [Thu, 30 Oct 2014 21:28:22 +0000 (17:28 -0400)]
Add the -Qunused-arguments warning to CPPFLAGS too.
Zoltan Varga [Thu, 30 Oct 2014 21:23:13 +0000 (17:23 -0400)]
[llvm] Remove the unused LLVM_MAJOR_VERSION/LLVM_MINOR_VERSION defines.
Alexander Köplinger [Thu, 30 Oct 2014 21:16:20 +0000 (22:16 +0100)]
Mark Probst [Wed, 29 Oct 2014 23:36:02 +0000 (16:36 -0700)]
[sgen] Don't store pin queue addresses, only indexes. Fixes #24084.
The pin queue can get relocated as a side-effect of resizing when late
pinning happens, so we can't count on pointers into it to remain valid.
Mark Probst [Wed, 29 Oct 2014 18:50:51 +0000 (11:50 -0700)]
[sgen] Fix crash in late pinning.
Our code assumed that late-pinned objects don't have a tag, but they
obviously have the pin tag, so use the safe function.
Mark Probst [Wed, 29 Oct 2014 18:48:09 +0000 (11:48 -0700)]
[sgen] Don't loop endlessly when out of memory.
Ryan J. Melena [Thu, 30 Oct 2014 16:47:56 +0000 (11:47 -0500)]
Revert incorrect changes from commit
950d9c8a567273c3363f43cee454f2b95a9f5da7
Correctly handle null value deserialization in non-generic Deserialize(string, Type) method.
Miguel de Icaza [Thu, 30 Oct 2014 20:18:59 +0000 (16:18 -0400)]
Re-apply the patch, there isa fix for it
Zoltan Varga [Thu, 30 Oct 2014 18:39:38 +0000 (14:39 -0400)]
[Mono.Data.Tds] Allow sending of text data longer than 4000 characters by using a different column type. Fixes #21172.
Miguel de Icaza [Thu, 30 Oct 2014 17:54:33 +0000 (13:54 -0400)]
Revert this patch, as it broke the test suite
Jonathan Pryor [Thu, 30 Oct 2014 16:33:33 +0000 (12:33 -0400)]
[System.Core/Android] Update TimeZone database self test.
Add Makefile rules to automagically download the TimeZone database
from the Android target $(ADB_TARGET), and build the tzi.exe app.
$ make android-dump-tzdata ADB_TARGET=-d
# downloads timezone data into ./android/tzdb.
# dumps timezone data into ./android/tzdata
# builds ./tzi.exe
# Show adjustment rules for a given timezone dump
$ mono tzi.exe -i=tzdata/Asia/Amman
Add `tzi.exe -R` option to show the TimeZoneInfo.GetAdjustmentRules()
output for all encountered timezones.
Add `tzi.exe -o=PATH` option to dump the TimeZone data to disk for
interrogation.
Add `tzi.exe -i=PATH` option to read in the specified TimeZone data
file and dump the rules contained therein.
Update usage comments.
Zoltan Varga [Wed, 29 Oct 2014 23:06:05 +0000 (19:06 -0400)]
Merge pull request #944 from ermshiperete/bug-novell-496138
Improve COM error handling
Zoltan Varga [Wed, 29 Oct 2014 21:08:42 +0000 (17:08 -0400)]
[corlib] Add some missing memory barriers to the ConcurrentQueue methods to order memory operations. Fixes #22788.
Zoltan Varga [Wed, 29 Oct 2014 19:03:31 +0000 (15:03 -0400)]
Merge pull request #1378 from DynamicDevices/ajl/warnings
[libgc] Eliminate warning about redefinition of GC_WIN32_THREADS
Miguel de Icaza [Wed, 29 Oct 2014 19:02:30 +0000 (15:02 -0400)]
Merge pull request #1337 from RyanMelenaNoesis/master
Additional JWT Security Token Support
Alexis Christoforides [Wed, 29 Oct 2014 17:16:04 +0000 (13:16 -0400)]
Bump Mono version -> 3.12.1
Zoltan Varga [Wed, 29 Oct 2014 16:55:31 +0000 (12:55 -0400)]
[llvm] Disable the extension of i8/i16 arguments to i32 on arm64, since the ios calling convention passes them differently than i32. Fixes #22800.
Alex J Lennon [Wed, 29 Oct 2014 13:27:01 +0000 (14:27 +0100)]
[libgc] Eliminate warning about redefinition of GC_WIN32_THREADS
Makefile defines GC_WIN32_THREADS as 1 but gc_config_macros was
redefining as defined but with no value.
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Zoltan Varga [Wed, 29 Oct 2014 03:30:44 +0000 (23:30 -0400)]
[llvm] Fix a regression caused by
6ec1ebf99078a996ca16fd0c56cbd4e96e32ed41. Do the direct call rewrite only if the caller and callee signature matches.
Zoltan Varga [Tue, 28 Oct 2014 21:07:11 +0000 (17:07 -0400)]
[runtime] Disable the check for overlapping reference and non-reference fields, too much code depends on this to work.
Neale Ferguson [Tue, 28 Oct 2014 18:48:45 +0000 (14:48 -0400)]
Add OP_LREM_IMM support;Add implementation of mono_arch_get_delegate_virtual_invoke_impl
Marcos Henrich [Tue, 28 Oct 2014 18:21:22 +0000 (18:21 +0000)]
Merge pull request #1298 from esdrubal/uploadfileasync
Fixes missing ContentType on WebClient.UploadFileTaskAsync
Marcos Henrich [Tue, 28 Oct 2014 18:18:54 +0000 (18:18 +0000)]
Merge pull request #1321 from esdrubal/currentsystemtimezone
CurrentSystemTimeZone.GetUtcOffset now supports multiple DST periods.
Zoltan Varga [Tue, 28 Oct 2014 17:40:28 +0000 (13:40 -0400)]
Merge pull request #1376 from StephenMcConnel/bug-24109
Zero out pointers to freed memory in AudioDevice
Stephen McConnel [Tue, 28 Oct 2014 17:10:43 +0000 (12:10 -0500)]
Zero out pointers to freed memory in AudioDevice
This fixes https://bugzilla.xamarin.com/show_bug.cgi?id=24109.
Alexis Christoforides [Tue, 28 Oct 2014 16:48:14 +0000 (12:48 -0400)]
Merge pull request #1373 from michaldobrodenka/master
Fix for random ObjectDiposedException in DispatcherCB class when connecting
João Matos [Tue, 28 Oct 2014 16:47:19 +0000 (16:47 +0000)]
Merge pull request #1369 from DynamicDevices/ajl/appveyor
[CI] Add appveyor.yml configuration file to support Windows build
Zoltan Varga [Tue, 28 Oct 2014 05:08:37 +0000 (01:08 -0400)]
Merge pull request #1374 from directhex/master
Add missing header file to s390x_sources
Alexis Christoforides [Thu, 9 Oct 2014 05:16:40 +0000 (22:16 -0700)]
[System.IO] Phase 2 of revamping KeventWatcher (FileSystemWatcher implementation for OS X/kqueue). Dozens of bugs and reliability issues fixed.
FileSystemWatcher.cs: Fixed multicast events.
SearchPattern.cs : Fixed issue where case insensitivity was not being honored.
KeventWatcher.cs:
* Fixed several race conditions
* Fixed file descriptor duplication & leaks
* thread-safe/cleaner state transitions for watcher, and much cleaner stopping
* Now uses fsw.Filter parameter and respects IncludeSubdirectories = false. Use fsw.Filter to watch very large trees
* Added more error handling + OnError event
* Lots of behavior/reliability fixes and optimizations for Monitor() loop
* Fixed kevent/timespec struct definitions (for 64-bit build)
Cody Russell [Sun, 8 Jun 2014 21:46:18 +0000 (16:46 -0500)]
[System.IO] Reimplemented much of the kqueue-based file watcher so that watching subdirectories works.
Reworked a lot of the internals of the kqueue FileSystemWatcher. There
is now a separate thread and a separate kqueue for each FileSystemWatcher
object.
https://bugzilla.xamarin.com/show_bug.cgi?id=16259
Zoltan Varga [Tue, 28 Oct 2014 00:55:48 +0000 (20:55 -0400)]
[jit] Fix the decomposition of OP_IREM_IMM on arm64.
Jo Shields [Mon, 27 Oct 2014 22:51:47 +0000 (22:51 +0000)]
Add missing header file to s390x_sources, otherwise a required header file for s390x builds is missing from tarball builds.
Ludovic Henry [Mon, 27 Oct 2014 16:28:19 +0000 (12:28 -0400)]
[threadpool] Fix race condition on threads variable cleanup