Ankit Jain [Thu, 7 Apr 2016 00:29:06 +0000 (20:29 -0400)]
Merge pull request #2844 from radical/assign-proj-config
[xbuild] Fix bug #40094 - AssignProjectConfiguration should fallback to project path if ..
Alex Rønne Petersen [Wed, 6 Apr 2016 23:12:10 +0000 (01:12 +0200)]
Merge pull request #2839 from alexrp/profiler-thread-detach
[profiler] Detach helper/writer threads before shutting them down.
Alexander Köplinger [Wed, 6 Apr 2016 21:31:06 +0000 (23:31 +0200)]
Replace android-libunwind submodule with a local copy
We can't keep it as a real git submodule since the repo contains an "aux" folder that breaks on Windows.
Alex Rønne Petersen [Wed, 6 Apr 2016 05:17:05 +0000 (07:17 +0200)]
[profiler] Detach helper/writer threads before shutting them down.
Alex Rønne Petersen [Wed, 6 Apr 2016 05:16:49 +0000 (07:16 +0200)]
[threads] Export mono_thread_info_detach () for use in the profiler.
Alexander Köplinger [Wed, 6 Apr 2016 20:34:52 +0000 (22:34 +0200)]
[ci] Put windows msbuild command in quotes
Rodrigo Kumpera [Wed, 6 Apr 2016 20:28:34 +0000 (16:28 -0400)]
Merge pull request #2837 from alexrp/master
Bunch of improvements surrounding thread names and reporting of such to the profiler
Ankit Jain [Wed, 6 Apr 2016 18:16:33 +0000 (14:16 -0400)]
[xbuild] Fix #40094, part 2/2: AssignProjectConfiguration - Fallback to
.. project path for lookup, if lookup by guid fails.
Fixes bxc #40094 .
Ankit Jain [Wed, 6 Apr 2016 18:11:17 +0000 (14:11 -0400)]
[xbuild] Fix #40094, part 1/2: SolutionParser: Emit `AbsolutePath="..."`
.. attribute for CurrentSolutionConfigurationContents .
<CurrentSolutionConfigurationContents>
<SolutionConfiguration xmlns="">
<ProjectConfiguration Project="{
82323650-6C2A-4FAC-91C6-
A715C2FE9CB2}" AbsolutePath="/Users/ankit/test/msbuild/bug40094/App1/App1\App1\App1.csproj">
Release|AnyCPU
</ProjectConfiguration>
...
Related to fix for bxc #40094
Joao Matos [Wed, 6 Apr 2016 17:06:29 +0000 (18:06 +0100)]
[runtime] Deduplicate MONO_ZERO_LEN_ARRAY into mono-compiler.h.
Joao Matos [Wed, 6 Apr 2016 16:55:55 +0000 (17:55 +0100)]
[runtime] Factor out (MonoMarshalConv)-1 into its own define.
Thanks to @marek-safar for suggestion.
João Matos [Wed, 6 Apr 2016 16:46:56 +0000 (17:46 +0100)]
Merge pull request #2842 from akoeplinger/fix-monodroid-build
Fix monodroid build
Alexander Köplinger [Wed, 6 Apr 2016 15:38:56 +0000 (17:38 +0200)]
Add android-libunwind submodule and fix path in mini-exceptions-native-unwinder.c
This was hosted in mono-extensions before. It is licensed under the MIT license:
https://android.googlesource.com/platform/external/libunwind/+/android-6.0.1_r24/LICENSE
Rodrigo Kumpera [Wed, 6 Apr 2016 15:24:52 +0000 (11:24 -0400)]
Merge pull request #2836 from kumpera/cwt_toggleref
Fixed a toggleref and CWT iteraction bug.
Alexander Köplinger [Wed, 6 Apr 2016 15:20:11 +0000 (17:20 +0200)]
[mini] Remove duplicated methods from tramp-arm64-gsharedvt.c
They are already defined in arch-stubs.c
Alexander Köplinger [Wed, 6 Apr 2016 15:19:36 +0000 (17:19 +0200)]
[mini] Fix incorrect ifdef in the arm64 gsharedvt files
It used MONO_ARCH_GSHARED_SUPPORTED instead of MONO_ARCH_GSHAREDVT_SUPPORTED.
Alexander Köplinger [Wed, 6 Apr 2016 15:16:49 +0000 (17:16 +0200)]
[mini] Add missing include to mini-exceptions-native-unwinder.c
It complained about mono_runtime_printf_err() not being defined.
Alexander Köplinger [Wed, 6 Apr 2016 15:14:02 +0000 (17:14 +0200)]
[mini] Fix ARM assembler syntax for MRC
According to http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/CIHEEIDJ.html the MRC instruction is documented as:
MRC{cond} coproc, opcode1, Rd, CRn, CRm{, opcode2}
with coproc being "the name of the coprocessor the instruction isfor. The standard name is pn, where n is an integer in the range 0-15."
GCC seemed to accept the operand without the 'p' prefix but clang raised an "invalid operand for instruction" error.
Joao Matos [Wed, 6 Apr 2016 15:08:28 +0000 (16:08 +0100)]
[runtime] Fixed invalid comparisons to MonoMarshalConv in marshal.c.
In some platforms, C enums might be considered unsigned, and in that case we'd get the following warning:
mono/mono/metadata/marshal.c:5108:12: warning: comparison of constant -1 with expression of type 'MonoMarshalConv' is always false
[-Wtautological-constant-out-of-range-compare]
if (conv == -1) {
~~~~ ^ ~~
The explicit cast should do the right thing.
Alexander Köplinger [Wed, 6 Apr 2016 13:12:29 +0000 (15:12 +0200)]
Merge pull request #2833 from directhex/ci-script-in-repo
Keep Jenkins job script in Mono repo
Marek Safar [Wed, 6 Apr 2016 11:50:07 +0000 (13:50 +0200)]
Merge pull request #2804 from radical/al-cecil
AL: Use IKVM.Reflection to get custom attributes from the template assembly,
Alexander Köplinger [Wed, 6 Apr 2016 09:24:56 +0000 (11:24 +0200)]
Merge pull request #2840 from directhex/fix_make_dist_commoncrypto
Fix missing CommonCrypto/Makefile.include in "make dist" tarballs
Jo Shields [Wed, 6 Apr 2016 09:04:50 +0000 (10:04 +0100)]
Fix missing CommonCrypto/Makefile.include in "make dist" tarballs
Jo Shields [Tue, 5 Apr 2016 15:18:41 +0000 (16:18 +0100)]
Keep Jenkins job script in Mono repo
This means we can change the script in different branches (right now, all pull requests against any branch share the same job script)
Marek Safar [Wed, 6 Apr 2016 06:54:02 +0000 (08:54 +0200)]
[Microsoft.Build.Tasks] Fix CodeTaskFactory to resolve user references
monojenkins [Wed, 6 Apr 2016 01:40:27 +0000 (02:40 +0100)]
Merge pull request #2835 from lewurm/fix-make-dist
[sqlmetal] fixup for
a73fb31f2 in order to fix `make dist'
Alex Rønne Petersen [Tue, 5 Apr 2016 22:42:54 +0000 (00:42 +0200)]
[mprof-report] Don't print a thread with a zero thread ID in the summary.
Log buffers can end up with a zero thread ID when we synthesize events on the
writer thread, leading to mprof-report thinking a thread exists with that ID.
We simply ignore the "zero thread" in the thread summary.
Alex Rønne Petersen [Tue, 5 Apr 2016 22:44:59 +0000 (00:44 +0200)]
[profiler] Ensure that we zero out thread IDs for buffers written from helper/writer threads.
If we don't do this, mprof-report will pick up on the fact that the helper and
writer threads exist and print them in the thread summary with no names. It's
OK to zero out the thread ID as the kinds of events we write from these threads
cannot be meaningfully associated with the log buffer's thread ID (or in the
case of counters, any thread ID).
Alex Rønne Petersen [Tue, 5 Apr 2016 22:52:37 +0000 (00:52 +0200)]
[mprof-report] Don't assume the first thread seen is the main thread.
The runtime now explicitly sets the native name for the main thread, so this
(faulty) assumption is no longer necessary.
Alex Rønne Petersen [Tue, 5 Apr 2016 22:50:46 +0000 (00:50 +0200)]
[mini] Set a native thread name for the main thread in the driver.
We only set the native name as MS.NET leaves the managed name for the main
thread as null. At least by setting the native name, we get a nice name in GDB.
Alex Rønne Petersen [Tue, 5 Apr 2016 19:38:16 +0000 (21:38 +0200)]
[threadpool] Explicitly use the root domain to allocate the thread name.
This is mainly for consistency with the rest of the runtime which explicitly
specifies the root domain when allocating thread name strings.
Alex Rønne Petersen [Tue, 5 Apr 2016 06:56:06 +0000 (08:56 +0200)]
[runtime] Add thread names to all internal runtime threads.
Alex Rønne Petersen [Tue, 5 Apr 2016 19:37:21 +0000 (21:37 +0200)]
[gc] Allow changing the finalizer thread's name.
This insanity is apparently allowed by MS.NET.
Alex Rønne Petersen [Tue, 5 Apr 2016 06:52:42 +0000 (08:52 +0200)]
[gc] Set name of the finalizer thread from within the thread.
This ensures that its name is set with pthread_setname_np () on Mac.
Alex Rønne Petersen [Tue, 5 Apr 2016 04:32:10 +0000 (06:32 +0200)]
[threads] Export some functions so the entire runtime can set thread names.
Alex Rønne Petersen [Tue, 5 Apr 2016 04:31:14 +0000 (06:31 +0200)]
[threads] Make mono_thread_info_set_name () work on Mac in some cases.
We can use pthread_setname_np () on OS X 10.6+ when we're setting the name for
the current thread. For other cases, we just do nothing.
Alex Rønne Petersen [Tue, 5 Apr 2016 22:39:55 +0000 (00:39 +0200)]
[threads] Don't report tools threads that do a full attach to the profiler.
The profiler helper thread does a full attach for on-demand heapshots. Since we
collect no actual data for the helper thread, there's no reason to report it.
Alex Rønne Petersen [Tue, 5 Apr 2016 23:27:17 +0000 (01:27 +0200)]
[threads] Make sure we change the native thread name if it was set before starting.
Alex Rønne Petersen [Tue, 5 Apr 2016 22:37:59 +0000 (00:37 +0200)]
[sgen] Make mono_gc_base_init () double-init resistant like the other GCs.
A double init could happen when profiling as we'd call mono_gc_base_init ()
from mono_profiler_load () early on, and then later call it again during the
normal startup sequence.
Alex Rønne Petersen [Tue, 5 Apr 2016 22:53:55 +0000 (00:53 +0200)]
[mini] Shut down the profiler after shutting down the major runtime components.
Previously, we would shut down the profiler so early that it would never see
unload events for threads, domains, etc. This sounds harmless at first, but
since the profiler dumps the remaining data in the thread-local log buffer to
disk from within the thread end callback, we would often miss events near the
end of a thread's lifetime.
Shutting down the profiler after the major runtime components doesn't appear to
have any negative effects, which makes sense as all managed threads should be
stopped by this point.
Rodrigo Kumpera [Tue, 5 Apr 2016 22:50:10 +0000 (18:50 -0400)]
[sgen] Mark togglerefs before processing ephemerons. Fixes #40108.
Strong Togglerefs must be considered as roots for the purpose of Ephemeron processing.
Otherwise you make it not possible to use a toggleref object as key.
Ankit Jain [Tue, 29 Mar 2016 21:23:06 +0000 (17:23 -0400)]
AL: Use IKVM.Reflection to get custom attributes from the template assembly,
.. instead of System.Reflection. This allows AL to work even if the
dependent assemblies of the template are not available.
monojenkins [Tue, 5 Apr 2016 22:00:37 +0000 (23:00 +0100)]
Merge pull request #2834 from xmcclure/inflated_method_header_leak_followup
Fix uninitialized MonoError in mono_basic_block_split
Follow-up on PR #2781 which removed a mono_error_init leading to memory unsafety. This was causing crashes when verifying assemblies in the 4.4 branch although it does not seem to have caused any known problems in master for some reason.
Bernhard Urban [Tue, 5 Apr 2016 21:08:31 +0000 (14:08 -0700)]
[sqlmetal] fixup for
a73fb31f2 in order to fix `make dist'
Alexander Köplinger [Tue, 5 Apr 2016 19:39:14 +0000 (21:39 +0200)]
Merge pull request #2832 from razzfazz/handle_eintr
handle EINTR for kevent calls
Andi McClure [Tue, 5 Apr 2016 18:51:25 +0000 (14:51 -0400)]
Document mono_error_init convention in source
Andi McClure [Tue, 5 Apr 2016 18:32:18 +0000 (14:32 -0400)]
[runtime] restore mono_error_init in mono_basic_block_split
Follow-up on PR #2781 which removed a mono_error_init. Ensure use in
helper functions for consistency. Fixes a potential crasher.
Marek Safar [Tue, 5 Apr 2016 18:08:41 +0000 (20:08 +0200)]
[Microsoft.Build.Utilities] Fixes tests resources build
Marek Safar [Tue, 5 Apr 2016 17:52:07 +0000 (19:52 +0200)]
[sqlmetal] Remove wrong tests config
Marek Safar [Tue, 5 Apr 2016 17:17:57 +0000 (19:17 +0200)]
[mcs] Remove duplicate references
Marek Safar [Tue, 5 Apr 2016 13:56:24 +0000 (15:56 +0200)]
Bump referencesource
Alexander Köplinger [Tue, 5 Apr 2016 13:04:31 +0000 (15:04 +0200)]
Merge pull request #2831 from razzfazz/fix_dllimport
clean up DllImport attributes
Marek Safar [Tue, 5 Apr 2016 11:38:36 +0000 (13:38 +0200)]
[System] Always pass -noconfig to codedom c# compiler
Alexander Köplinger [Tue, 5 Apr 2016 11:19:25 +0000 (13:19 +0200)]
[build] Exclude generated .g.cs files from "make dist"
The recent changes to the mobile profiles introduced generated files in their .sources like CommonCrypto/MD5CryptoServiceProvider.g.cs
However, those are not generated when the mobile profiles aren't enabled at configure time.
This caused a problem during "make dist" since it tries to grab the entries in .sources from *all* profiles, causing errors like:
cp: cannot stat ‘CommonCrypto/MD5CryptoServiceProvider.g.cs’: No such file or directory
make[5]: *** [dist-local] Error 1
The easiest fix is to filter out those generated files.
Daniel Becker [Tue, 5 Apr 2016 07:35:21 +0000 (00:35 -0700)]
clean up DllImport attributes
Any native function that can modify errno should have the
SetLastError attribute set to true. Also, no need to specify
EntryPoint if it's the same as the function name.
Zoltan Varga [Mon, 4 Apr 2016 23:13:33 +0000 (19:13 -0400)]
[runtime] Allow the options in MONO_DEBUG to be passed as a command line option too.
Zoltan Varga [Mon, 4 Apr 2016 23:02:56 +0000 (19:02 -0400)]
[llvm] Enable pinvoke call using the C calling conv in llvm-only mode.
Zoltan Varga [Mon, 4 Apr 2016 22:20:49 +0000 (18:20 -0400)]
[corlib] Make some ExceptionDispatchInfo tests with BitcodeNotWorking because we don't truncate stack traces of exceptions at the catch site when running with bitcode.
Rodrigo Kumpera [Mon, 4 Apr 2016 21:24:52 +0000 (17:24 -0400)]
Merge pull request #2827 from xmcclure/profile-clean-0.1
Continued profiler loading cleanup (PR#2816 follow up)
monojenkins [Mon, 4 Apr 2016 20:11:31 +0000 (21:11 +0100)]
Merge pull request #2545 from ermshiperete/Xamarin-24974
[corlib] Fix exception in __ComObject finalizer during shutdown
* keep a reference to a __ComObject's proxy so it doesn't get garbage
collected
* don't create __ComObjects unnecessarily
* Fix for bug [24974](https://bugzilla.xamarin.com/show_bug.cgi?id=24974)
Marek Safar [Mon, 4 Apr 2016 15:30:08 +0000 (17:30 +0200)]
[build] Update nunit-console path for xbuild profiles
Marek Safar [Mon, 4 Apr 2016 15:25:22 +0000 (17:25 +0200)]
[Microsoft.Build.Engine] Update test files
Marek Safar [Mon, 4 Apr 2016 15:03:47 +0000 (17:03 +0200)]
[mcs] Make more errors build explicit
Marek Safar [Mon, 4 Apr 2016 14:40:22 +0000 (16:40 +0200)]
[System.Runtime.Serialization.dll] Update referencesource strings
Marek Safar [Mon, 4 Apr 2016 13:37:32 +0000 (15:37 +0200)]
[tools] Update missing reference
Alexander Köplinger [Mon, 4 Apr 2016 14:34:20 +0000 (16:34 +0200)]
Fix make dist
Alexander Köplinger [Mon, 4 Apr 2016 13:34:24 +0000 (15:34 +0200)]
[test-runner] Ignore exceptions during process kill
We hit this on Jenkins over the weekend:
https://jenkins.mono-project.com/job/test-mono-mainline/label=osx-amd64/3845/parsed_console/log_content.html#WARNING1
```
Unhandled Exception:
System.InvalidOperationException: Cannot process request because the process (51792) has exited.
at System.Diagnostics.Process.GetProcessHandle (Int32 access, Boolean throwIfExited) <0x10d7ea000 + 0x001b6> in <filename unknown>:0
at System.Diagnostics.Process.GetProcessHandle (Int32 access) <0x10d7f2fd0 + 0x0001e> in <filename unknown>:0
at System.Diagnostics.Process.Kill () <0x10d7f2ee0 + 0x00031> in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Kill ()
at TestRunner+<Main>c__AnonStorey0.<>m__0 () <0x10a9b50b0 + 0x00e30> in <filename unknown>:0
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) <0x10c55bc90 + 0x0009a> in <filename unknown>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, Boolean preserveSyncCtx) <0x10c55a210 + 0x001c6> in <filename unknown>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, Boolean preserveSyncCtx) <0x10c55a1e0 + 0x00020> in <filename unknown>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) <0x10c55a130 + 0x00059> in <filename unknown>:0
at System.Threading.ThreadHelper.ThreadStart () <0x10c55be50 + 0x0002e> in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: Cannot process request because the process (51792) has exited.
at System.Diagnostics.Process.GetProcessHandle (Int32 access, Boolean throwIfExited) <0x10d7ea000 + 0x001b6> in <filename unknown>:0
at System.Diagnostics.Process.GetProcessHandle (Int32 access) <0x10d7f2fd0 + 0x0001e> in <filename unknown>:0
at System.Diagnostics.Process.Kill () <0x10d7f2ee0 + 0x00031> in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Kill ()
at TestRunner+<Main>c__AnonStorey0.<>m__0 () <0x10a9b50b0 + 0x00e30> in <filename unknown>:0
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) <0x10c55bc90 + 0x0009a> in <filename unknown>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, Boolean preserveSyncCtx) <0x10c55a210 + 0x001c6> in <filename unknown>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, Boolean preserveSyncCtx) <0x10c55a1e0 + 0x00020> in <filename unknown>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) <0x10c55a130 + 0x00059> in <filename unknown>:0
at System.Threading.ThreadHelper.ThreadStart () <0x10c55be50 + 0x0002e> in <filename unknown>:0
make[1]: *** [test-generic-sharing-managed] Error 1
```
We can't do anything about those errors, so just catch and ignore it.
Marek Safar [Mon, 4 Apr 2016 13:23:06 +0000 (15:23 +0200)]
[build] Update mcs path in mini tests
Marek Safar [Mon, 4 Apr 2016 12:40:56 +0000 (14:40 +0200)]
[Facades] Update list of full assemblies
Marek Safar [Mon, 4 Apr 2016 12:12:51 +0000 (14:12 +0200)]
[mcs] Basic boostrap references are always default ones
Marek Safar [Mon, 4 Apr 2016 12:02:10 +0000 (14:02 +0200)]
Marek Safar [Mon, 4 Apr 2016 12:01:02 +0000 (14:01 +0200)]
[Microsoft.Build.Engine] clean/copy mdb files as well
Marek Safar [Mon, 4 Apr 2016 11:42:47 +0000 (13:42 +0200)]
[build] Change the way how mcs references are passed to compiler to always use full path.
One of csc prerequisites because csc uses -lib as path which is considered after
RuntimeEnvironment.GetRuntimeDirectory which makes -lib useless
Marek Safar [Sun, 3 Apr 2016 18:26:33 +0000 (20:26 +0200)]
[System.Runtime.Serialization.Formatters.Soap] Make test output deterministic
Marek Safar [Sun, 3 Apr 2016 18:12:41 +0000 (20:12 +0200)]
[Mono.C5] Make test output deterministic
Ludovic Henry [Mon, 4 Apr 2016 10:15:08 +0000 (11:15 +0100)]
Merge pull request #2713 from gregoryyoung/master
handles AwaitAsync finishing synchronously
Zoltan Varga [Sun, 3 Apr 2016 01:02:50 +0000 (21:02 -0400)]
[amd64] Add a separate ArgStorage entry for gsharedvt return types instead of using a separate flag in CallInfo.
Alexander Köplinger [Sun, 3 Apr 2016 00:56:29 +0000 (02:56 +0200)]
[acceptance-tests] Fix test-runner.exe compilation after 136dd0
monojenkins [Sat, 2 Apr 2016 15:50:31 +0000 (16:50 +0100)]
Merge pull request #2720 from mono/fix-39325
[Profiler] Keep a reference to assemblies while coverage is running
In certain circumstances, for example when running under nunit-console, assemblies could be unloaded while the profiler still had a reference to them in order to generate the coverage data. In these cases, the memory referred to by the profiler would be invalid and would crash.
Fix this by incrementing the reference count of the assemblies preventing them from being unloaded while coverage is being collected.
Fixes BXC #39325
Zoltan Varga [Sat, 2 Apr 2016 06:32:04 +0000 (02:32 -0400)]
[runtime] Move the test for shutting down the stat profiler to mini_cleanup ().
Zoltan Varga [Sat, 2 Apr 2016 05:38:43 +0000 (01:38 -0400)]
[arm64] Fix the generation of static rgctx trampolines when using aot on linux.
Zoltan Varga [Sat, 2 Apr 2016 05:27:27 +0000 (01:27 -0400)]
[arm64] Implement handler block guard trampolines.
Zoltan Varga [Sat, 2 Apr 2016 05:23:35 +0000 (01:23 -0400)]
[runtime] Fix a crash when shutting down the sampling thread.
Zoltan Varga [Sat, 2 Apr 2016 02:36:15 +0000 (22:36 -0400)]
[tests] Increase the timeout in the test runner so running tests with llvm doesn't time out.
Alexander Köplinger [Sat, 2 Apr 2016 01:56:01 +0000 (18:56 -0700)]
[metadata] Remove invalid Win32 entry in object-offsets.h
The lmf_addr field in MonoLMF only exists for TARGET_X86.
Alexander Köplinger [Sat, 2 Apr 2016 01:53:22 +0000 (18:53 -0700)]
[mini] Remove duplicate stubs from tramp-amd64/x86-gsharedvt.c
They already exist in arch-stubs.c and caused conflicts on the MSVC build.
Alexander Köplinger [Sat, 2 Apr 2016 01:17:39 +0000 (18:17 -0700)]
[msvc] Add missing files to MSVC project files
Alex Rønne Petersen [Fri, 1 Apr 2016 20:25:10 +0000 (22:25 +0200)]
[mini] Fix build on systems without clock_nanosleep ().
Rodrigo Kumpera [Fri, 1 Apr 2016 20:15:41 +0000 (13:15 -0700)]
[jit] Handle verification failing with InvalidProgramException. Fixes #40040.
Zoltan Varga [Fri, 1 Apr 2016 20:12:23 +0000 (16:12 -0400)]
[runtime] Make a copy of the types passed to mono_mb_add_local () earlier since they could be transient.
Zoltan Varga [Fri, 1 Apr 2016 20:03:20 +0000 (16:03 -0400)]
[arm64] Fix clearing of stack traces when an exception is rethrown. Fix the calculation of struct sizes in pinvoke calls. Remove some dead code.
Andi McClure [Fri, 1 Apr 2016 19:39:38 +0000 (15:39 -0400)]
Continued profiler loading cleanup (PR#2816 follow up)
- Back out MONO_PROFILER_LIB_DIR change
- Profiler loading traces should use log mask “dll” not “asm”
- mono_dl_open_runtime_lib should preempt standard paths when loading
profiler
- mono_dl_open_runtime_lib should check in profiler library directory
- mono_dl_open_runtime_lib contained a memory leak
- With above changes, ptestrunner.pl can remove some environment
massaging
Rodrigo Kumpera [Fri, 1 Apr 2016 18:19:24 +0000 (11:19 -0700)]
Merge pull request #2825 from kumpera/loader_error_removal
GOOD RIDDANCE LOADER ERROR
Alexander Köplinger [Fri, 1 Apr 2016 13:08:50 +0000 (15:08 +0200)]
Merge pull request #2826 from mattleibow/mono.options-update
[Mono.Options] Added support for Enums in the PCL version
Alexander Köplinger [Fri, 1 Apr 2016 12:11:03 +0000 (14:11 +0200)]
[System.Web.Extensions] Add test for last fix
Jussi Sainio [Fri, 6 Jun 2014 12:54:21 +0000 (15:54 +0300)]
[System.Web.Extensions] Use CultureInfo.InvariantCulture for number parsing
Fixes #4242, see bug comments. JsonSerializer seems to have been already
fixed in
abe9dc62. The JsonDeserializer number conversion is now much
stricter, allowing only integer number style for integers and float number
style for floats.
monojenkins [Fri, 1 Apr 2016 07:00:18 +0000 (08:00 +0100)]
Merge pull request #2805 from alexrp/profiler-sampling-thread2
[profiler] Use a background thread to send out sampling signals.
Previously, when using an interval timer, the initial profiling signal could be
delivered to *any* thread in the process. This is not normally a problem, but
if the signaled thread has not even finished its initialization inside libc, it
can happen that it hasn't even set up thread-local storage yet. We then blow up
spectacularly when trying to back up errno in the SIGPROF signal handler, as
it's a TLS variable. Even the SIGSEGV handler blows up immediately after as it
can't access JIT TLS data.
Since there appears to be no reliable and portable way for a library like Mono
to control which exact thread gets the initial timer signal, instead switch to
using a background thread that uses a high-resolution sleep and attempts to
switch itself to real time scheduling if possible. This way, we have full
control over which threads we send SIGPROF to, letting us avoid any threads
which aren't in a 'good' state for profiling.
This commit also gets rid of the multiplexing that was going on in the SIGPROF
signal handler, since we now send out the signals from a background thread. As
this was the only use of the async job API, that API has been removed. This
indirectly fixes the signal storming issue that sometimes popped up, where for
some reason multiple threads would think that they're the initiating thread,
resulting in way too many signals going out.
A nice side-effect of doing the signaling ourselves is that we can now use
real-time signals on systems that have them (e.g. Linux), resulting in a nearly
100% signal delivery rate in all cases. Previously, we would lose a tremendous
amount of signals when an application was under heavy load.
Zoltan Varga [Fri, 1 Apr 2016 04:27:48 +0000 (00:27 -0400)]
[arm64] Implement interruption checking in the trampoline code.
Matthew Leibowitz [Fri, 1 Apr 2016 03:13:46 +0000 (05:13 +0200)]
[Mono.Options] Added support for Enums in the PCL version
- Support for String to Enum
- Support for Number to Enum
- Support for Flags to Enum
- Added a UnitTest
Alex Rønne Petersen [Sun, 20 Mar 2016 02:08:42 +0000 (03:08 +0100)]
[profiler] Use a background thread to send out sampling signals.
Previously, when using an interval timer, the initial profiling signal could be
delivered to *any* thread in the process. This is not normally a problem, but
if the signaled thread has not even finished its initialization inside libc, it
can happen that it hasn't even set up thread-local storage yet. We then blow up
spectacularly when trying to back up errno in the SIGPROF signal handler, as
it's a TLS variable. Even the SIGSEGV handler blows up immediately after as it
can't access JIT TLS data.
Since there appears to be no reliable and portable way for a library like Mono
to control which exact thread gets the initial timer signal, instead switch to
using a background thread that uses a high-resolution sleep and attempts to
switch itself to real time scheduling if possible. This way, we have full
control over which threads we send SIGPROF to, letting us avoid any threads
which aren't in a 'good' state for profiling.
This commit also gets rid of the multiplexing that was going on in the SIGPROF
signal handler, since we now send out the signals from a background thread. As
this was the only use of the async job API, that API has been removed. This
indirectly fixes the signal storming issue that sometimes popped up, where for
some reason multiple threads would think that they're the initiating thread,
resulting in way too many signals going out.
A nice side-effect of doing the signaling ourselves is that we can now use
real-time signals on systems that have them (e.g. Linux), resulting in a nearly
100% signal delivery rate in all cases. Previously, we would lose a tremendous
amount of signals when an application was under heavy load.