summaryrefslogtreecommitdiff
path: root/src/vm/loaderallocator.cpp
AgeCommit message (Collapse)AuthorFilesLines
2018-10-04Enable thread statics for collectible classes (#19944)Jan Vorlicek1-106/+143
* Enable thread statics for collectible classes This change removes checks that were preventing usage of thread statics in collectible classes and also implements all the necessary changes. The handles that hold arrays with thread statics are allocated from LoaderAllocator for collectible classes instead of using the global strong handle like in the case of non-collectible classes. The change very much mimics what is done for regular statics. This change also adds ability to reuse freed handles to the LoaderAllocator handle table. Freed handle indexes are stored into a stack and when a new handle allocation is requested, the indices from this stack are used first. Due to the code path from which the FreeTLM that in turn frees the handles is called, I had to modify the critical section flags and also refactor the handle allocation so that the actual managed array representing the handle table is allocated out of the critical section. When I was touching the code, I have also moved the code that was dealing with handles that are not stored in the LoaderAllocator handle tables out of the critical section, since there is no point in having it inside of it.
2018-10-04Remove AppDomain unload (#20250)Jan Vorlicek1-2/+1
* 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.
2018-08-23Enable unloading of AssemblyLoadContext (#18476)Jan Vorlicek1-50/+220
Enable assembly unloading * Allow PInvoke methods on collectible assemblies * Fix test unloadability Several hundreds of tests were using Helper class that created GCHandle, but never freed it. That prevented unloading of those tests. The change modifies the Helper class to keep the handle in a finalizable object. Several GCHandle related tests were not freeing the GCHandle they allocated, so this change adds freeing them to enable the unloading. * Add missing error messages to the resources * Fix shuffle thunk cache for unloadability * Add GetLoaderAllocator to ICLRPrivBinder
2018-05-24Fix a variety of typos (#18096)John Doe1-1/+1
* absense -> absence * aboring -> aborting * absense -> absence * absoute -> absolute * absoute -> absolute * abstration -> abstraction * dwDesiredAcces -> dwDesiredAccess * accees -> access * accesed -> accessed * accessability -> accessibility * accessable -> accessible * accidentaly -> accidentally * accesible -> accessible * accommondate -> accommodate * accurancy -> accuracy * accuratley -> accurately * Achitecture -> Architecture * acompannying -> accompanying * acordingly -> accordingly
2018-01-12LoaderHeap: remove LHF_ZEROINIT option.Konstantin Baladurin1-2/+1
This option was used for UMEntryThunkCode::Poison. Now we use own free list to store freed thunks and don't return allocated memory to the LoaderHeap. So reused thunks are always uninitialized.
2017-07-31 Fill freed loader heap chunk with non-zero value (#12731)Jonghyun Park1-1/+3
* Add FEATURE_LOADER_HEAP_GUARD feature * Invoke memset only for reclaimed regions * Enable FEATURE_LOADER_HEAP_GUARD by default * Insert trap inside UMEntryThunk::Terminate * Make all exectuable heaps not to zero-initialize itself Use fZeroInit (instead of fMakeRelazed) * Add comment * Revert unnecessary changes * Add and use 'Poison' method to insert a trap * Do NOT invoke FlushInstructionCache * Update comment * Add comment on ARM Poisoning instruction * Use X86_INSTR_INT3 instead of 0xCC
2017-06-12[Arm64/Unix] Add 64K page support (#10981)Steve MacLean1-8/+8
* [Arm64/Unix] Support 64K pages * GC move GCToOSInterface::Initialize() into InitializeGarbageCollector()
2016-01-27Update license headersdotnet-bot1-4/+3
2015-11-17Enable CLANG sanitizers for native debug buildsSteve Harter1-7/+12
2015-04-28Build crossgen for LinuxJohn Chen (JOCHEN7)1-2/+0
- Crossgen is now built as part of coreclr - Crossgen successfully compiles mscorlib.dll - Resulting mscorlib.ni.dll not yet usable
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+1668
[tfs-changeset: 1407945]