Etienne CHAMPETIER [Fri, 24 Oct 2014 07:35:12 +0000 (09:35 +0200)]
WebConfigurationManager: protect GetSection
all public static should be thread-safe
Signed-off-by: Etienne CHAMPETIER <etienne.champetier@fiducial.net>
Etienne CHAMPETIER [Thu, 23 Oct 2014 15:44:36 +0000 (17:44 +0200)]
HttpApplication: set StatusCode = 500 when we send an exception to the client
Signed-off-by: Etienne CHAMPETIER <etienne.champetier@fiducial.net>
Jo Shields [Fri, 24 Oct 2014 12:23:15 +0000 (13:23 +0100)]
Merge pull request #1361 from akoeplinger/fix-forms
[MWF] Use overload of Marshal.PtrToStringUni that reads up until the first null instead of explicitly specifying length
Atsushi Eno [Fri, 24 Oct 2014 04:20:09 +0000 (12:20 +0800)]
[xml] XmlTextReader: Value was wrong after ReadAttributeValue() on xml declaration.
Zoltan Varga [Fri, 24 Oct 2014 03:01:22 +0000 (23:01 -0400)]
[runtime] Remove build system support for the interpreter.
Atsushi Eno [Thu, 23 Oct 2014 23:14:58 +0000 (07:14 +0800)]
[relaxng] fix default namespace handling in compact syntax.
Also had to disable RNC tests that depended on vanished web resource...
Alexander Köplinger [Thu, 23 Oct 2014 22:11:03 +0000 (00:11 +0200)]
[MWF] Use overload of Marshal.PtrToStringUni that reads up until the first null instead of explicitly specifying length
This fixes the two tests broken by
0ac61b03fcd9baf75739d3c567b36647bde08025
Zoltan Varga [Thu, 23 Oct 2014 18:47:19 +0000 (14:47 -0400)]
[jit] Use NULLIFY_INS () to nullify instructions and use MONO_INST_NEW to create phi node instructions to avoid asserts in the spill pass. Fixes #24006.
Zoltan Varga [Thu, 23 Oct 2014 18:04:32 +0000 (14:04 -0400)]
[runtime] Fix a regression introduced by
8d9f05ea9a943ff1a36bb0ef3dd0521853d3a489. Only do the check for overlapping fields when the size of the type is known.
Zoltan Varga [Thu, 23 Oct 2014 17:56:33 +0000 (13:56 -0400)]
[jit] Print out methods which failed to JIT when using --regression.
Ludovic Henry [Thu, 23 Oct 2014 15:00:12 +0000 (11:00 -0400)]
[bcl] Restore ThreadPool number of threads configuration after each test
Zoltan Varga [Wed, 22 Oct 2014 22:20:34 +0000 (18:20 -0400)]
[runtime] Add checks for overlapping reference and non-reference fields when using explicit layout. Fixes #23954.
Zoltan Varga [Wed, 22 Oct 2014 21:47:48 +0000 (17:47 -0400)]
Merge pull request #1358 from madewokherd/win32build
Fix win32 build.
Zoltan Varga [Wed, 22 Oct 2014 21:13:27 +0000 (17:13 -0400)]
[llvm] Rewrite the way direct calls are made between llvm methods. Previously all calls were made to plt entries and the plt entry symbols were aliased to point to the corresponding method if the method was directly callable using the .set assembler directive. This doesn't seem to work with newer LLVM/CLANG versions, so do this completely on the LLVM side using Value::replaceAllUsesWith (). Fixes #23976.
Ludovic Henry [Wed, 22 Oct 2014 21:08:08 +0000 (17:08 -0400)]
[threadpool] Fix deadlock/starvation of the thread pool
The issue was with the new heuristic of the thread pool which would not create new threads, leading to deadlock between dependent tasks.
The fix is to check if every worker threads are sleeping, waiting or joining, and if that's the case, then we create a new thread because we might be in the case where the tasks being currently run depends on one still being enqueued in the cq or one of the wsq.
The following tests would previously fail :
1) MonoTests.System.Threading.Tasks.TaskTests.DoubleWaitTest : #1
Expected: True
But was: False
at MonoTests.System.Threading.Tasks.TaskTests.<DoubleWaitTest>m__27 () [0x00077] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:800
at MonoTests.System.Threading.Tasks.ParallelTestHelper.Repeat (System.Action action, Int32 numRun) [0x00007] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/ParallelTestHelper.cs:48
at MonoTests.System.Threading.Tasks.TaskTests.DoubleWaitTest () [0x00000] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:790
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:230
2) MonoTests.System.Threading.Tasks.TaskTests.HideSchedulerTest : #1
Expected: True
But was: False
at MonoTests.System.Threading.Tasks.TaskTests.HideSchedulerTest () [0x0003d] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:1914
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:230
3) MonoTests.System.Threading.Tasks.TaskTests.WaitAll_TimeoutWithExceptionsAfter : #1
Expected: True
But was: False
at MonoTests.System.Threading.Tasks.TaskTests.WaitAll_TimeoutWithExceptionsAfter () [0x00070] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:317
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:230
4) MonoTests.System.Threading.Tasks.TaskTests.WaitAll_TimeoutWithExceptionsBefore : #1
Expected: True
But was: False
at MonoTests.System.Threading.Tasks.TaskTests.WaitAll_TimeoutWithExceptionsBefore () [0x00070] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:341
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:230
5) MonoTests.System.Threading.Tasks.TaskTests.WaitAnyTest : #3
Expected: not -1
But was: -1
at MonoTests.System.Threading.Tasks.TaskTests.<WaitAnyTest>m__0 () [0x00026] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:142
at MonoTests.System.Threading.Tasks.ParallelTestHelper.Repeat (System.Action action, Int32 numRun) [0x00007] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/ParallelTestHelper.cs:48
at MonoTests.System.Threading.Tasks.ParallelTestHelper.Repeat (System.Action action) [0x00000] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/ParallelTestHelper.cs:42
at MonoTests.System.Threading.Tasks.TaskTests.WaitAnyTest () [0x00000] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:128
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:230
6) MonoTests.System.Threading.Tasks.TaskTests.WaitChildTestCase : #0b
Expected: True
But was: False
at MonoTests.System.Threading.Tasks.TaskTests.<WaitChildTestCase>m__25 () [0x0006d] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:705
at MonoTests.System.Threading.Tasks.ParallelTestHelper.Repeat (System.Action action, Int32 numRun) [0x00007] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/ParallelTestHelper.cs:48
at MonoTests.System.Threading.Tasks.TaskTests.WaitChildTestCase () [0x00000] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:684
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:230
7) MonoTests.System.Threading.Tasks.TaskTests.WaitingForChildrenToComplete : #3
Expected: True
But was: False
at MonoTests.System.Threading.Tasks.TaskTests.WaitingForChildrenToComplete () [0x00048] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs:734
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /Users/ludovic/Xamarin/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:230
Vincent Povirk [Wed, 22 Oct 2014 20:19:10 +0000 (15:19 -0500)]
Fix win32 build.
This commit licensed as MIT/X11.
Zoltan Varga [Wed, 22 Oct 2014 18:22:12 +0000 (14:22 -0400)]
[bcl] Fix races in task tests.
Ludovic Henry [Mon, 13 Oct 2014 21:54:03 +0000 (17:54 -0400)]
[sgen] Add GC max collection time counter
Ludovic Henry [Mon, 13 Oct 2014 21:09:05 +0000 (17:09 -0400)]
[sgen] Add memory governor allocated size counter
Ludovic Henry [Tue, 21 Oct 2014 14:03:31 +0000 (10:03 -0400)]
[sgen] Fix assertion error on 32bits
Jo Shields [Tue, 21 Oct 2014 13:17:36 +0000 (14:17 +0100)]
Merge pull request #1356 from martinjt/ReadEntityV2
Removed erroneously added property to HttpRequestBase in pull #1353
Zoltan Varga [Tue, 21 Oct 2014 02:51:49 +0000 (22:51 -0400)]
[jit] Add some micro-optimizations to speed up the AOT compiler.
Zoltan Varga [Tue, 21 Oct 2014 00:48:55 +0000 (20:48 -0400)]
Fix a warning.
Ludovic Henry [Tue, 30 Sep 2014 19:22:42 +0000 (15:22 -0400)]
[sgen] Adjust internal allocator block size to slot size.
The internal allocator used size segregated blocks which were always
16k large. Since we have quite a few different size classes this led
to a lot of allocation even for very small programs.
We now use block sizes that are determined by the slot size and are as
small as possible. They're power-of-two multiples of the page size,
so we end up with blocks of 4k, 8k and 16k.
Ludovic Henry [Tue, 30 Sep 2014 22:02:55 +0000 (18:02 -0400)]
[sgen] Add assertion on power of 2 for internal allocator section size
Ludovic Henry [Tue, 30 Sep 2014 21:11:33 +0000 (17:11 -0400)]
[sgen] Add internal allocator default sizes usage statistic
Ludovic Henry [Tue, 30 Sep 2014 21:09:50 +0000 (17:09 -0400)]
[sgen] Utility function to compute number of unfaulted pages.
Ludovic Henry [Tue, 30 Sep 2014 17:46:47 +0000 (13:46 -0400)]
[sgen] Cleanup some allocation code
Zoltan Varga [Mon, 20 Oct 2014 23:19:27 +0000 (19:19 -0400)]
Fix the build after the signals changes.
Zoltan Varga [Mon, 20 Oct 2014 22:22:40 +0000 (18:22 -0400)]
[jit] Remove some unused definitions.
Zoltan Varga [Mon, 20 Oct 2014 22:08:19 +0000 (18:08 -0400)]
Fix a typo.
Zoltan Varga [Mon, 20 Oct 2014 22:07:13 +0000 (18:07 -0400)]
[runtime] Clean up the signal handling code by moving the signal handler signature definitions to mono-signal-handler.h and using them everywhere.
Mark Probst [Tue, 7 Oct 2014 00:11:20 +0000 (17:11 -0700)]
[sgen] Fix allowance calculation.
The formula for calculating allowance was not only overly complicated
but completely broken, which resulted in the allowance always being the
minimum (4 times the nursery size). That resulted in too frequent garbage
collections when the heap grew larger.
Now we do something very similar to what Boehm does: Allow the heap
to grow by a third before the next major collection happens.
Martin Thwaites [Mon, 20 Oct 2014 20:34:27 +0000 (21:34 +0100)]
Removed erroneously added property to HttpRequestBase in pull #1353
Miguel de Icaza [Mon, 20 Oct 2014 14:04:35 +0000 (10:04 -0400)]
Merge pull request #1354 from martinjt/RequestAbort
Implement Request.Abort()
Miguel de Icaza [Mon, 20 Oct 2014 14:04:00 +0000 (10:04 -0400)]
Merge pull request #1353 from martinjt/ReadEntityBodyMode
Implement the ReadEntityBodyMode properties
Martin Thwaites [Sat, 18 Oct 2014 21:31:14 +0000 (22:31 +0100)]
Implement Request.Abort()
Martin Thwaites [Sat, 18 Oct 2014 20:55:47 +0000 (21:55 +0100)]
Implement the ReadEntityBodyMode properties
Rodrigo Kumpera [Fri, 17 Oct 2014 19:37:14 +0000 (15:37 -0400)]
[runtime] Don't define ucontext_t for android if PLATFORM is not android.
Zoltan Varga [Fri, 17 Oct 2014 16:14:13 +0000 (12:14 -0400)]
Fix a warning.
Zoltan Varga [Thu, 16 Oct 2014 22:35:51 +0000 (18:35 -0400)]
Fix a warning.
Zoltan Varga [Thu, 16 Oct 2014 21:11:19 +0000 (17:11 -0400)]
Fix a warning.
Zoltan Varga [Thu, 16 Oct 2014 20:03:49 +0000 (16:03 -0400)]
[bcl] Add an AppDomain.DoUnhandledException () internal method which can be used to invoke the UnhandledException event handlers.
Zoltan Varga [Thu, 16 Oct 2014 17:53:56 +0000 (13:53 -0400)]
[io-layer] Make _wapi_shm_enabled () inline so more code can be optimized away if shared handles are disabled.
Zoltan Varga [Thu, 16 Oct 2014 16:59:06 +0000 (12:59 -0400)]
[io-layer] Remove more dead process code, add comments.
Paolo Molaro [Thu, 16 Oct 2014 14:39:33 +0000 (10:39 -0400)]
[jit] Fix -O=precomp option to skip generic methods and not crash.
Zoltan Varga [Wed, 15 Oct 2014 22:56:01 +0000 (18:56 -0400)]
[io-layer] Allocate the process name dynamically to make WapiHandle_process smaller.
Zoltan Varga [Wed, 15 Oct 2014 22:50:09 +0000 (18:50 -0400)]
[io-layer] Remove WapiHandle_process.self field, its no longer needed.
Zoltan Varga [Wed, 15 Oct 2014 21:22:08 +0000 (17:22 -0400)]
Include ucontext.h on android if it exists.
Zoltan Varga [Wed, 15 Oct 2014 21:18:21 +0000 (17:18 -0400)]
[runtime] Add a 'shared_handles' --enable-minimal option, same as --disable-shared-handles.
Zoltan Varga [Wed, 15 Oct 2014 21:17:41 +0000 (17:17 -0400)]
Fix a warning.
Zoltan Varga [Wed, 15 Oct 2014 20:52:56 +0000 (16:52 -0400)]
[io-layer] Remove another usage of getdtablesize ().
Zoltan Varga [Wed, 15 Oct 2014 20:45:19 +0000 (16:45 -0400)]
[runtime] Use getrlimit () to obtain the size of the fd table instead of getdtablesize () which is getting deprecated in Android.
Zoltan Varga [Wed, 15 Oct 2014 20:28:47 +0000 (16:28 -0400)]
[io-layer] More coding convention/formatting fixes.
Zoltan Varga [Wed, 15 Oct 2014 19:21:53 +0000 (15:21 -0400)]
[corlib] Implement MonoGenericClass:GetCustomAttributes () for created types. Fixes #23769.
Zoltan Varga [Wed, 15 Oct 2014 19:08:54 +0000 (15:08 -0400)]
[io-layer] Fix the linux build.
Zoltan Varga [Wed, 15 Oct 2014 18:50:58 +0000 (14:50 -0400)]
[io-layer] Make process handles non-shared. Fixes #23423.
João Matos [Wed, 15 Oct 2014 18:37:25 +0000 (14:37 -0400)]
Fixed linking on MinGW.
Zoltan Varga [Wed, 15 Oct 2014 16:53:30 +0000 (12:53 -0400)]
[jit] Fix the return of vtypes containing a single fp member from pinvoke methods on osx/x86. Fixes #23813.
Rodrigo Kumpera [Tue, 14 Oct 2014 22:11:36 +0000 (18:11 -0400)]
[build] Rework the buildver dep check.
Zoltan Varga [Tue, 14 Oct 2014 19:59:24 +0000 (15:59 -0400)]
Revert "Fixed buildver generated headers automake dependency tracking."
This reverts commit
8f41328a7811fee2798d95ed140e62b3198fc323.
Revert this for now as it breaks the parallel build.
Zoltan Varga [Tue, 14 Oct 2014 18:12:19 +0000 (14:12 -0400)]
Merge pull request #1341 from smortex/patch-2
Fix build on FreeBSD
Romain Tartière [Tue, 14 Oct 2014 18:03:29 +0000 (20:03 +0200)]
Protect #include <unistd.h>
Protect inclusion as reported by @vargaz
Zoltan Varga [Tue, 14 Oct 2014 17:49:53 +0000 (13:49 -0400)]
Merge pull request #1340 from smortex/patch-1
Add missing header
Romain Tartière [Tue, 14 Oct 2014 17:48:31 +0000 (19:48 +0200)]
Fix build on FreeBSD
pid_t (used at line 216) is available on Linux in `unistd.h` and so on on FreeBSD (`sys/types.h` to be precise, included in `unistd.h`), yet on FreeBSD this header is not automatically included.
Romain Tartière [Tue, 14 Oct 2014 17:42:44 +0000 (19:42 +0200)]
Add missing header
Zoltan Varga [Tue, 14 Oct 2014 16:54:48 +0000 (12:54 -0400)]
Merge pull request #1339 from tritao/master
Fixed buildver generated headers automake dependency tracking.
João Matos [Tue, 14 Oct 2014 15:46:14 +0000 (11:46 -0400)]
Fixed buildver generated headers automake dependency tracking.
We now include buildver-sgen/boehm.h in BUILT_SOURCES to have proper dependency tracking for these generated files.
Fixes the MinGW OSX cross build.
Zoltan Varga [Mon, 13 Oct 2014 22:39:56 +0000 (18:39 -0400)]
[runtime] Fix an SRE assert. Fixes #19039.
Zoltan Varga [Mon, 13 Oct 2014 17:56:29 +0000 (13:56 -0400)]
Merge pull request #1335 from nlhepler/master
Fix relocatable mono
Lance Hepler [Mon, 13 Oct 2014 16:28:19 +0000 (09:28 -0700)]
Fix relocatable mono
Marek Safar [Mon, 13 Oct 2014 10:28:08 +0000 (12:28 +0200)]
[mcs] A pointer-type may be used as the type of a volatile field. Fixes #23770
Zoltan Varga [Sun, 12 Oct 2014 22:02:29 +0000 (18:02 -0400)]
[runtime] Remove some dead code from the io-layer process code, avoid mixing ifdefs with control flow.
Marek Habersack [Fri, 10 Oct 2014 16:36:50 +0000 (18:36 +0200)]
Merge pull request #1333 from joero74/ignore-missing-host
Prevent NullReferenceException in case of missing Host
Joerg Rosenkranz [Fri, 10 Oct 2014 13:01:37 +0000 (15:01 +0200)]
Prevent NullReferenceException in case of missing Host
Do not throw a NullReferenceException when Host variable is not set.
Ignore the calls to RegisterObject and UnregisterObject instead.
Zoltan Varga [Fri, 10 Oct 2014 01:46:01 +0000 (21:46 -0400)]
[runtime] Rewrite io-layer process code to reduce duplication and make it conform to the mono coding conventions.
Zoltan Varga [Thu, 9 Oct 2014 20:48:51 +0000 (16:48 -0400)]
[runtime] Use explicit initialization in the io-layer process code instead of pthread_once (). Get rid of the WAPI_PROCESS_HANDLE_OFFSET code which was only used in shared mode.
Zoltan Varga [Thu, 9 Oct 2014 20:21:56 +0000 (16:21 -0400)]
[runtime] More win32 build fixes.
Zoltan Varga [Thu, 9 Oct 2014 19:50:56 +0000 (15:50 -0400)]
runtime] Really use WinXP SP2 as the minimum version on the msvc builds too. Update project files with newly
added/removed sources.
Zoltan Varga [Thu, 9 Oct 2014 19:19:56 +0000 (15:19 -0400)]
[runtime] Use WinXP SP2 as the minimum version on the msvc builds too.
Mark Probst [Thu, 9 Oct 2014 18:43:03 +0000 (11:43 -0700)]
Merge pull request #1326 from BrzVlad/master
[sgen] Fix pointer access.
Zoltan Varga [Thu, 9 Oct 2014 18:04:20 +0000 (14:04 -0400)]
[runtime] Remove pre WinXP SP2 windows support code.
Zoltan Varga [Thu, 9 Oct 2014 17:04:41 +0000 (13:04 -0400)]
[runtime] Use the functionality in mono-proclib.c to get the current pid, remove duplicate code from the io-layer.
Zoltan Varga [Thu, 9 Oct 2014 16:56:04 +0000 (12:56 -0400)]
[runtime] Use the functionality in mono-proclib.c to enumerate processes, remove duplicate code from the io-layer.
Alexis Christoforides [Thu, 9 Oct 2014 05:04:34 +0000 (22:04 -0700)]
Fix oops in DataContractJsonSerializer fix
Zoltan Varga [Wed, 8 Oct 2014 20:12:01 +0000 (16:12 -0400)]
[bcl] Use List instead of ArrayList () in a few places.
Zoltan Varga [Wed, 8 Oct 2014 19:12:26 +0000 (15:12 -0400)]
[bcl] Free strings allocated using Marshal.SecureStringToBSTR () using Marshal.ZeroFreeBSTR ().
Marek Safar [Wed, 8 Oct 2014 19:02:54 +0000 (15:02 -0400)]
Merge pull request #1330 from esdrubal/blockingcollection
Improved BlockingCollection.AddAny.
Ludovic Henry [Wed, 8 Oct 2014 17:52:55 +0000 (13:52 -0400)]
[threaddpool] Fix deadlock in thread pool with monitor thread (2nd attempt)
Because the monitor thread was not marked as background thread, remove_and_abort_threads (threads.c:2807) would mark it as needed to be waited to shutdown the runtime, and wait_for_tids (threads.c:2652) would then wait indefinitely for it to finish. The issue was that the monitor was waiting on the semaphore monitor_sem, and thus would never exit.
Thread 7 (Thread 0x1c13 of process 99776):
#0 0x00007fff86590a56 in ?? () from /usr/lib/system/libsystem_kernel.dylib
#1 0x00000001003cc03a in mono_sem_wait (sem=0x1004f7f50, alertable=0) at mono-semaphore.c:103
#2 0x00000001002cef41 in monitor_thread (unused=0x0) at threadpool.c:898
#3 0x00000001002cb78f in start_wrapper_internal (data=0x10500abf0) at threads.c:657
#4 0x00000001002cb4a1 in start_wrapper (data=0x10500abf0) at threads.c:704
#5 0x00000001003d61d4 in inner_start_thread (arg=0x7fff5fbfe500) at mono-threads-posix.c:84
#6 0x00007fff8e7c9899 in _pthread_body () from /usr/lib/system/libsystem_pthread.dylib
#7 0x00007fff8e7c972a in _pthread_start () from /usr/lib/system/libsystem_pthread.dylib
#8 0x00007fff8e7cdfc9 in thread_start () from /usr/lib/system/libsystem_pthread.dylib
#9 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x1503 of process 99776):
#0 0x00007fff86594716 in ?? () from /usr/lib/system/libsystem_kernel.dylib
#1 0x00007fff8e7cbc3b in _pthread_cond_wait () from /usr/lib/system/libsystem_pthread.dylib
#2 0x000000010039cfaa in _wapi_handle_timedwait_signal_handle (handle=0xa55, timeout=0x0, alertable=1, poll=0) at handles.c:1595
#3 0x000000010039d03d in _wapi_handle_wait_signal_handle (handle=0xa55, alertable=1) at handles.c:1540
#4 0x00000001003b7ba3 in WaitForSingleObjectEx (handle=0xa55, timeout=
4294967295, alertable=1) at wait.c:194
#5 0x00000001003b865d in WaitForMultipleObjectsEx (numobjects=1, handles=0x7fff5fbff1f8, waitall=1, timeout=
4294967295, alertable=1) at wait.c:516
#6 0x00000001002c75df in wait_for_tids (wait=0x7fff5fbff1f8, timeout=
4294967295) at threads.c:2658
#7 0x00000001002c70e5 in mono_thread_manage () at threads.c:2951
#8 0x00000001000d551b in mono_main (argc=6, argv=0x7fff5fbff9e8) at driver.c:2021
#9 0x0000000100001bd1 in mono_main_with_options (argc=6, argv=0x7fff5fbff9e8) at ./main.c:91
#10 0x00000001000017d3 in main (argc=6, argv=0x7fff5fbff9e8) at ./main.c:122
Thanks @akoeplinger for the help debugging
Marcos Henrich [Wed, 8 Oct 2014 11:59:42 +0000 (12:59 +0100)]
Refactored AddToAny and TakeFromAny to reuse code.
Marcos Henrich [Wed, 8 Oct 2014 11:16:36 +0000 (12:16 +0100)]
Improved BlockingCollection.AddAny. Fixes #22775.
AddAny no longer consumes OperationCanceledException.
AddAny no longer blocks while adding an item to the first collection when its full.
Marcos Henrich [Wed, 8 Oct 2014 10:58:26 +0000 (11:58 +0100)]
Test BlockCollection.AddAny. Covers #22775.
Marcos Henrich [Wed, 8 Oct 2014 10:51:59 +0000 (11:51 +0100)]
BlockingCollection.Add was adding one more item than it should.
Marcos Henrich [Wed, 8 Oct 2014 09:41:14 +0000 (10:41 +0100)]
Test that BlockingCollection.Add blocks when there is no more space.
Zoltan Varga [Wed, 8 Oct 2014 00:44:28 +0000 (20:44 -0400)]
[jit] Extract the ctor calling code from the NEWOBJ implementation into a separate function.
Zoltan Varga [Wed, 8 Oct 2014 00:20:58 +0000 (20:20 -0400)]
[jit] Clean up the jit failure handling code a bit, move the the bulk of the eror handling macros into functions, unify the cleanup code at the end of mono_method_to_ir ().
Alexis Christoforides [Tue, 7 Oct 2014 23:23:37 +0000 (16:23 -0700)]
[bcl] Implement KnownTypes for DataContractJsonSerializer. Fixes #23058 and polymorphism support.
Also discarded old __type hint behavior in JsonSerializationReader that potentially allowed any loaded type to be instantiated.
Alexis Christoforides [Tue, 7 Oct 2014 23:18:25 +0000 (16:18 -0700)]
[tests] Add tests for Bug #23058 and polymorphism/known types in DataContractJsonSerializer.
Ludovic Henry [Tue, 7 Oct 2014 22:14:04 +0000 (18:14 -0400)]
[threaddpool] Fix deadlock in thread pool with monitor thread
Because the monitor thread was not marked as background thread, remove_and_abort_threads (threads.c:2807) would mark it as needed to be waited to shutdown the runtime, and wait_for_tids (threads.c:2652) would then wait indefinitely for it to finish. The issue was that the monitor was waiting on the semaphore monitor_sem, and thus would never exit.
Thread 7 (Thread 0x1c13 of process 99776):
#0 0x00007fff86590a56 in ?? () from /usr/lib/system/libsystem_kernel.dylib
#1 0x00000001003cc03a in mono_sem_wait (sem=0x1004f7f50, alertable=0) at mono-semaphore.c:103
#2 0x00000001002cef41 in monitor_thread (unused=0x0) at threadpool.c:898
#3 0x00000001002cb78f in start_wrapper_internal (data=0x10500abf0) at threads.c:657
#4 0x00000001002cb4a1 in start_wrapper (data=0x10500abf0) at threads.c:704
#5 0x00000001003d61d4 in inner_start_thread (arg=0x7fff5fbfe500) at mono-threads-posix.c:84
#6 0x00007fff8e7c9899 in _pthread_body () from /usr/lib/system/libsystem_pthread.dylib
#7 0x00007fff8e7c972a in _pthread_start () from /usr/lib/system/libsystem_pthread.dylib
#8 0x00007fff8e7cdfc9 in thread_start () from /usr/lib/system/libsystem_pthread.dylib
#9 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x1503 of process 99776):
#0 0x00007fff86594716 in ?? () from /usr/lib/system/libsystem_kernel.dylib
#1 0x00007fff8e7cbc3b in _pthread_cond_wait () from /usr/lib/system/libsystem_pthread.dylib
#2 0x000000010039cfaa in _wapi_handle_timedwait_signal_handle (handle=0xa55, timeout=0x0, alertable=1, poll=0) at handles.c:1595
#3 0x000000010039d03d in _wapi_handle_wait_signal_handle (handle=0xa55, alertable=1) at handles.c:1540
#4 0x00000001003b7ba3 in WaitForSingleObjectEx (handle=0xa55, timeout=
4294967295, alertable=1) at wait.c:194
#5 0x00000001003b865d in WaitForMultipleObjectsEx (numobjects=1, handles=0x7fff5fbff1f8, waitall=1, timeout=
4294967295, alertable=1) at wait.c:516
#6 0x00000001002c75df in wait_for_tids (wait=0x7fff5fbff1f8, timeout=
4294967295) at threads.c:2658
#7 0x00000001002c70e5 in mono_thread_manage () at threads.c:2951
#8 0x00000001000d551b in mono_main (argc=6, argv=0x7fff5fbff9e8) at driver.c:2021
#9 0x0000000100001bd1 in mono_main_with_options (argc=6, argv=0x7fff5fbff9e8) at ./main.c:91
#10 0x00000001000017d3 in main (argc=6, argv=0x7fff5fbff9e8) at ./main.c:122
Zoltan Varga [Tue, 7 Oct 2014 19:43:08 +0000 (15:43 -0400)]
[jit] Reduce code duplication in the inlining code.