summaryrefslogtreecommitdiff
path: root/src/vm/finalizerthread.h
AgeCommit message (Collapse)AuthorFilesLines
2019-04-13Delete COMPlus_FinalizeOnShutdown (#23595)Jan Kotas1-7/+12
This compat quirk is increasingly more broken since the framework is generally not compatible with, and we have not heard anybody actually using it. Changed Environment.HasShutdownStarted to unconditionally return false. It does not make sense for it to ever return true with shutdown finalization disabled.
2019-04-03Remove ADID and ADIndex from CoreCLR (#23588)David Wrighton1-3/+2
- Remove concept of AppDomain from object api in VM - Various infrastructure around entering/leaving appdomains is removed - Add small implementation of GetAppDomain for use by DAC (to match existing behavior) - Simplify finalizer thread operations - Eliminate AppDomain::Terminate - Remove use of ADID from stresslog - Remove thread enter/leave tracking from AppDomain - Remove unused asm constants across all architectures - Re-order header inclusion order to put gcenv.h before handletable - Remove retail only sync block code involving appdomain index
2018-10-04Remove AppDomain unload (#20250)Jan Vorlicek1-15/+0
* Remove AppDomain unload This change removes all code in AppDomain that's related to AppDomain unloading which is obsolete in CoreCLR. It also removes all calls to the removed methods. In few places, I have made the change simpler by taking into account the fact that there is always just one AppDomain.
2017-03-07[x86/Linux] CDECL as default P/Invoke Calling Convetion (#9977)Jonghyun Park1-1/+1
* [x86/Linux] CDECL as default P/Invoke Calling Convetion
2016-06-20Fix GC background thread start in OOM (#5840)Jan Vorlicek1-1/+1
This change fixes a problem that happened when the `gc_heap::create_bgc_thread` calls SetupUnstartedThread and it fails to allocate a Thread object and throws. The GC doesn't expect that and so when the stack is unwound, the `gc_heap::gc_started` stays set. Now we try to allocate memory for the Throwable for the exception, so we go to GC heap and since there is not enough space, we end up calling `gc_heap::try_allocate_more_space`, which calls `gc_heap::wait_for_gc_done`. And that’s the end of it, since the `gc_started` is still set and we wait forever. The fix is to catch exception from the SetupUnstartedThread. I have also fixed couple of places where this method was being called and the exception was not expected. As an additional cleanup, I have moved the thread creation in GC to the GCToEEInterface.
2016-06-07Disable HeapDump on Linux if FEATURE_EVENT_TRACE is not set (#5550)Jonghyun Park1-1/+1
This commit tries to disable heap dump on linux if FEATURE_EVENT_TRACE is not set in order to fix #5546.
2016-06-01Squashed commit of the following:David Mason1-0/+4
commit 45d11dde6acdc3def0a13302c527e3c7a662b009 Author: David Mason <davmason@microsoft.com> Date: Wed May 25 19:00:10 2016 -0700 Squashed commit of the following: commit f586c5552d8225f13b5a0476f5bdf9362ba9ee8d Author: Lee Culver <leculver@microsoft.com> Date: Wed May 25 14:17:45 2016 -0700 Fix heap dump GC type to be Induced Previously we didn't set the GC type to be "Induced" when collecting a heap dump. This would cause perfview to ignore the GC. commit 78866dfdcc15ebade0a2faeb6af9a5b7f5e0a170 Author: Lee Culver <leculver@microsoft.com> Date: Wed May 25 13:18:41 2016 -0700 Enable LTTng events for creating a gcdump There were a handful of events that were not properly enabled on linux. This change adds enables the remaining events to allow heap dumps. commit 04d3d6c3d9a1c87e88bc1db91f717481f21874bc Author: Lee Culver <leculver@microsoft.com> Date: Tue May 24 12:57:16 2016 -0700 Fix BulkTypeEvents The buffer used for BulkTypeEvents was defined as a BYTE** instead of BYTE*. This lead to incorrectly written BulkTypeEvents. commit 8ceab5828e8101b134beb0175b1842487607636c Author: David Mason <davmason@microsoft.com> Date: Wed May 18 11:21:12 2016 -0700 Add logic for finalizer thread to check to see if a heap dump is required. commit cd64b4884d639ce90e4192975533f5e873bd1cb3 Author: Lee Culver <leculver@microsoft.com> Date: Thu May 19 14:24:01 2016 -0700 Special case BulkType LTTng event The BulkType LTTng event does not have a real element size. Instead each element is variable length. This change updates the FireBulkType method to allow us to pass the correct size to LTTng. commit f8ab762106188bc124af802ec0490ef8375412b5 Merge: 77495aa f0d9ab4 Author: Lee Culver <leculver@microsoft.com> Date: Thu May 19 13:49:43 2016 -0700 Merge branch 'gc-events' of github.com:leculver/coreclr into gc-events commit f0d9ab4e52c69b45d2d169983c23ab5263edb5c0 Author: Lee Culver <leculver@microsoft.com> Date: Thu May 19 12:51:01 2016 -0700 Enable BulkType LTTng events on linux Emit calls to FireBulkType events on linux. This commit enables the code, but currently the wrong size is used in the etw subsystem (this function must be special cased). commit 25c682ce49f51298f011046faa50443c569943b7 Author: Lee Culver <leculver@microsoft.com> Date: Wed May 18 12:06:05 2016 -0700 Fix multiple LTTng issues - Only emit LTTng events when LTTng is enabled. We now use the tracepoint_enabled macro to check if an event is enabled...when the version of lttng is installed that supports it. - Unsplit LTTng events. Previously we split LTTng events when they exceeded the field limit of LTTng. Now we emit those events as a raw byte array so that it matches their windows ETW counterparts byte-for-byte. - Emit any event with a struct or embedded array as a raw byte array too. The structure of memory that LTTng emits is incompatible with our ETW parsing. Changing events with struct/array fields greatly simplifies the parsing of events. commit 77495aa1b3415dcee8d4b6e8eb1d0b5cb921f821 Merge: 754596d f77577c Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 18:24:55 2016 -0700 Merge branch 'master' of github.com:leculver/coreclr commit 754596d9c51d07db9267148a20f81c786f719312 Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 18:21:54 2016 -0700 Squashed commit of the following: commit f77577c1d7c552de9e75f6fb98a656a1d09bf8b2 Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 18:04:18 2016 -0700 Properly handle arrays in LTTng Arrays were not being properly handled by the LTTng code generator. commit 390e998719e050a4e61b29bef4c8f8ecbff3423f Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 11:21:07 2016 -0700 Manually write events with structs Manually write events to LTTng which have structs embedded in them. commit 54ae7c79f3c96987504cece302513ac9215afbfe Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 09:12:45 2016 -0700 Fix issue with struct sizes Struct sizes were not properly calculated for manually saved events. commit d4e59b1b8b18822e551e585ebe006e5b66066bf8 Author: Lee Culver <leculver@microsoft.com> Date: Mon May 16 20:57:33 2016 -0700 Fix tests Tests were not being generated properly, as they skipped a parameter. This is now fixed. commit 91d68c7ee36f28b1d9de8d0242edcd078416dc80 Author: Lee Culver <leculver@microsoft.com> Date: Wed May 11 17:41:23 2016 -0700 Remove excess fields in LTTng stream Extra fields were inserted into LTTng to calculate the size of struct pointers. Now this calculation is done natively without needing to insert the extra fields. commit 3bf826f5e36637ff5188d0205510d7236458075a Author: Lee Culver <leculver@microsoft.com> Date: Tue May 10 10:00:39 2016 -0700 Re-enable dynamic linking to fix a load issue Was getting a loader issue on startup, disabling static linking for now. commit aacb45ff675d2299df938493416f875096ec446c Author: Lee Culver <leculver@microsoft.com> Date: Thu Apr 28 20:56:01 2016 -0700 Unsplit lttng events LTTng has a limitation in that it cannot emit events with more than 9 parameters. Previously we would split these events into multiple events. However this proves to be very difficult to consume with TraceEvent. Instead we now pack the parameters into a byte array an emit the byte array + length as a single event, avoiding the need to recombine events later. commit a9a630da28d42132c2e8929909e86545fbe630c9 Author: Lee Culver <leculver@microsoft.com> Date: Wed Apr 20 13:31:33 2016 -0700 Only emit LTTng events when they are enabeld. This changes adds a check for tracepoint_enabled (when that feature is available). This change also statically compiles against the LTTng libraries (instead of dynamically) to avoid using entrypoints that may not be there if compiled against a different lttng that lacks the tracepoint_enabled entrypoint. commit f77577c1d7c552de9e75f6fb98a656a1d09bf8b2 Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 18:04:18 2016 -0700 Properly handle arrays in LTTng Arrays were not being properly handled by the LTTng code generator. commit 390e998719e050a4e61b29bef4c8f8ecbff3423f Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 11:21:07 2016 -0700 Manually write events with structs Manually write events to LTTng which have structs embedded in them. commit 54ae7c79f3c96987504cece302513ac9215afbfe Author: Lee Culver <leculver@microsoft.com> Date: Tue May 17 09:12:45 2016 -0700 Fix issue with struct sizes Struct sizes were not properly calculated for manually saved events. commit d4e59b1b8b18822e551e585ebe006e5b66066bf8 Author: Lee Culver <leculver@microsoft.com> Date: Mon May 16 20:57:33 2016 -0700 Fix tests Tests were not being generated properly, as they skipped a parameter. This is now fixed. commit 91d68c7ee36f28b1d9de8d0242edcd078416dc80 Author: Lee Culver <leculver@microsoft.com> Date: Wed May 11 17:41:23 2016 -0700 Remove excess fields in LTTng stream Extra fields were inserted into LTTng to calculate the size of struct pointers. Now this calculation is done natively without needing to insert the extra fields. commit 3bf826f5e36637ff5188d0205510d7236458075a Author: Lee Culver <leculver@microsoft.com> Date: Tue May 10 10:00:39 2016 -0700 Re-enable dynamic linking to fix a load issue Was getting a loader issue on startup, disabling static linking for now. commit aacb45ff675d2299df938493416f875096ec446c Author: Lee Culver <leculver@microsoft.com> Date: Thu Apr 28 20:56:01 2016 -0700 Unsplit lttng events LTTng has a limitation in that it cannot emit events with more than 9 parameters. Previously we would split these events into multiple events. However this proves to be very difficult to consume with TraceEvent. Instead we now pack the parameters into a byte array an emit the byte array + length as a single event, avoiding the need to recombine events later. commit a9a630da28d42132c2e8929909e86545fbe630c9 Author: Lee Culver <leculver@microsoft.com> Date: Wed Apr 20 13:31:33 2016 -0700 Only emit LTTng events when they are enabeld. This changes adds a check for tracepoint_enabled (when that feature is available). This change also statically compiles against the LTTng libraries (instead of dynamically) to avoid using entrypoints that may not be there if compiled against a different lttng that lacks the tracepoint_enabled entrypoint.
2016-01-27Update license headersdotnet-bot1-4/+3
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+95
[tfs-changeset: 1407945]