summaryrefslogtreecommitdiff
path: root/src/gc/gcscan.cpp
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2015-12-08 16:13:30 -0800
committerJan Kotas <jkotas@microsoft.com>2015-12-08 16:20:30 -0800
commit81a569b456cb74c491bbfd18d882ddc00ab6ecd9 (patch)
tree9a74c09af60c35435b89a6e2db63926d579d93a4 /src/gc/gcscan.cpp
parentd1633211ee01ed05f467cacd36418f313e7a3d71 (diff)
downloadcoreclr-81a569b456cb74c491bbfd18d882ddc00ab6ecd9.tar.gz
coreclr-81a569b456cb74c491bbfd18d882ddc00ab6ecd9.tar.bz2
coreclr-81a569b456cb74c491bbfd18d882ddc00ab6ecd9.zip
Update GC from CoreRT
https://github.com/dotnet/corert/tree/master/src/Native/gc 7be6983a6510ef00de78f4c1c8bf884a89e7c82a
Diffstat (limited to 'src/gc/gcscan.cpp')
-rw-r--r--src/gc/gcscan.cpp71
1 files changed, 10 insertions, 61 deletions
diff --git a/src/gc/gcscan.cpp b/src/gc/gcscan.cpp
index 50b76f54cd..dd7b4c1be6 100644
--- a/src/gc/gcscan.cpp
+++ b/src/gc/gcscan.cpp
@@ -36,11 +36,16 @@ bool CNameSpace::GetGcRuntimeStructuresValid ()
}
#ifdef DACCESS_COMPILE
+
+#ifndef FEATURE_REDHAWK
void
CNameSpace::EnumMemoryRegions(CLRDataEnumMemoryFlags flags)
{
+ UNREFERENCED_PARAMETER(flags);
m_GcStructuresInvalidCnt.EnumMem();
}
+#endif
+
#else
//
@@ -119,7 +124,7 @@ void CNameSpace::GcWeakPtrScan( promote_func* fn, int condemned, int max_gen, Sc
Ref_ScanDependentHandlesForClearing(condemned, max_gen, sc, fn);
}
-static void CALLBACK CheckPromoted(_UNCHECKED_OBJECTREF *pObjRef, uintptr_t *pExtraInfo, uintptr_t lp1, uintptr_t lp2)
+static void CALLBACK CheckPromoted(_UNCHECKED_OBJECTREF *pObjRef, uintptr_t * /*pExtraInfo*/, uintptr_t /*lp1*/, uintptr_t /*lp2*/)
{
LIMITED_METHOD_CONTRACT;
@@ -140,6 +145,8 @@ static void CALLBACK CheckPromoted(_UNCHECKED_OBJECTREF *pObjRef, uintptr_t *pEx
void CNameSpace::GcWeakPtrScanBySingleThread( int condemned, int max_gen, ScanContext* sc )
{
+ UNREFERENCED_PARAMETER(condemned);
+ UNREFERENCED_PARAMETER(max_gen);
GCToEEInterface::SyncBlockCacheWeakPtrScan(&CheckPromoted, (uintptr_t)sc, 0);
}
@@ -151,6 +158,7 @@ void CNameSpace::GcScanSizedRefs(promote_func* fn, int condemned, int max_gen, S
void CNameSpace::GcShortWeakPtrScan(promote_func* fn, int condemned, int max_gen,
ScanContext* sc)
{
+ UNREFERENCED_PARAMETER(fn);
Ref_CheckAlive(condemned, max_gen, (uintptr_t)sc);
}
@@ -166,37 +174,7 @@ void CNameSpace::GcScanRoots(promote_func* fn, int condemned, int max_gen,
PAL_TRY
#endif // _DEBUG && CATCH_GC
{
- STRESS_LOG1(LF_GCROOTS, LL_INFO10, "GCScan: Promotion Phase = %d\n", sc->promotion);
- {
- // In server GC, we should be competing for marking the statics
- if (GCHeap::MarkShouldCompeteForStatics())
- {
- if (condemned == max_gen && sc->promotion)
- {
- GCToEEInterface::ScanStaticGCRefsOpportunistically(fn, sc);
- }
- }
-
- Thread* pThread = NULL;
- while ((pThread = GCToEEInterface::GetThreadList(pThread)) != NULL)
- {
- STRESS_LOG2(LF_GC|LF_GCROOTS, LL_INFO100, "{ Starting scan of Thread %p ID = %x\n", pThread, pThread->GetThreadId());
-
- if (GCHeap::GetGCHeap()->IsThreadUsingAllocationContextHeap(
- GCToEEInterface::GetAllocContext(pThread), sc->thread_number))
- {
- sc->thread_under_crawl = pThread;
-#ifdef FEATURE_EVENT_TRACE
- sc->dwEtwRootKind = kEtwGCRootKindStack;
-#endif // FEATURE_EVENT_TRACE
- GCToEEInterface::ScanStackRoots(pThread, fn, sc);
-#ifdef FEATURE_EVENT_TRACE
- sc->dwEtwRootKind = kEtwGCRootKindOther;
-#endif // FEATURE_EVENT_TRACE
- }
- STRESS_LOG2(LF_GC|LF_GCROOTS, LL_INFO100, "Ending scan of Thread %p ID = 0x%x }\n", pThread, pThread->GetThreadId());
- }
- }
+ GCToEEInterface::GcScanRoots(fn, condemned, max_gen, sc);
}
#if defined ( _DEBUG) && defined (CATCH_GC)
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
@@ -318,35 +296,6 @@ void CNameSpace::GcPromotionsGranted (int condemned, int max_gen, ScanContext* s
}
-void CNameSpace::GcFixAllocContexts (void* arg, void *heap)
-{
- LIMITED_METHOD_CONTRACT;
-
- if (GCHeap::UseAllocationContexts())
- {
- Thread *thread = NULL;
- while ((thread = GCToEEInterface::GetThreadList(thread)) != NULL)
- {
- GCHeap::GetGCHeap()->FixAllocContext(GCToEEInterface::GetAllocContext(thread), FALSE, arg, heap);
- }
- }
-}
-
-void CNameSpace::GcEnumAllocContexts (enum_alloc_context_func* fn)
-{
- LIMITED_METHOD_CONTRACT;
-
- if (GCHeap::UseAllocationContexts())
- {
- Thread *thread = NULL;
- while ((thread = GCToEEInterface::GetThreadList(thread)) != NULL)
- {
- (*fn) (GCToEEInterface::GetAllocContext(thread));
- }
- }
-}
-
-
size_t CNameSpace::AskForMoreReservedMemory (size_t old_size, size_t need_size)
{
LIMITED_METHOD_CONTRACT;