summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2017-01-23 22:23:18 -0800
committerGitHub <noreply@github.com>2017-01-23 22:23:18 -0800
commit52aa019ec9bed8c08a2f8e230804b363bcaef6f4 (patch)
tree391e8a0b20089a63fff98ecff727ed748429f5f5 /src
parent3a0a7663e1cc26e04a86e3ccb8e9de5ea650ebc4 (diff)
downloadcoreclr-52aa019ec9bed8c08a2f8e230804b363bcaef6f4.tar.gz
coreclr-52aa019ec9bed8c08a2f8e230804b363bcaef6f4.tar.bz2
coreclr-52aa019ec9bed8c08a2f8e230804b363bcaef6f4.zip
Port GC fixes from CoreRT (#9078)
Diffstat (limited to 'src')
-rw-r--r--src/gc/env/gcenv.base.h19
-rw-r--r--src/gc/gc.cpp8
2 files changed, 8 insertions, 19 deletions
diff --git a/src/gc/env/gcenv.base.h b/src/gc/env/gcenv.base.h
index 0a0de73ee1..9fe583f9a6 100644
--- a/src/gc/env/gcenv.base.h
+++ b/src/gc/env/gcenv.base.h
@@ -441,8 +441,6 @@ extern MethodTable * g_pFreeObjectMethodTable;
extern int32_t g_TrapReturningThreads;
-extern bool g_fFinalizerRunOnShutDown;
-
//
// Locks
//
@@ -454,21 +452,6 @@ Thread * GetThread();
typedef void (CALLBACK *HANDLESCANPROC)(PTR_UNCHECKED_OBJECTREF pref, uintptr_t *pExtraInfo, uintptr_t param1, uintptr_t param2);
-class FinalizerThread
-{
-public:
- static bool Initialize();
- static void EnableFinalization();
-
- static bool HaveExtraWorkForFinalizer();
-
- static bool IsCurrentThreadFinalizer();
- static void Wait(DWORD timeout, bool allowReentrantWait = false);
- static void SignalFinalizationDone(bool fFinalizer);
- static void SetFinalizerThread(Thread * pThread);
- static HANDLE GetFinalizerEvent();
-};
-
bool IsGCSpecialThread();
inline bool dbgOnly_IsSpecialEEThread()
@@ -509,8 +492,6 @@ void LogSpewAlways(const char *fmt, ...);
// -----------------------------------------------------------------------------------------------------------
-void StompWriteBarrierEphemeral(bool isRuntimeSuspended);
-void StompWriteBarrierResize(bool isRuntimeSuspended, bool bReqUpperBoundsCheck);
bool IsGCThread();
class CLRConfig
diff --git a/src/gc/gc.cpp b/src/gc/gc.cpp
index 578f1db9d7..df77170d2b 100644
--- a/src/gc/gc.cpp
+++ b/src/gc/gc.cpp
@@ -15363,7 +15363,10 @@ void gc_heap::gc1()
if (!settings.concurrent)
#endif //BACKGROUND_GC
{
+#ifndef FEATURE_REDHAWK
+ // IsGCThread() always returns false on CoreRT, but this assert is useful in CoreCLR.
assert(!!IsGCThread());
+#endif // FEATURE_REDHAWK
adjust_ephemeral_limits();
}
@@ -16204,7 +16207,10 @@ BOOL gc_heap::expand_soh_with_minimal_gc()
dd_gc_new_allocation (dynamic_data_of (max_generation)) -= ephemeral_size;
dd_new_allocation (dynamic_data_of (max_generation)) = dd_gc_new_allocation (dynamic_data_of (max_generation));
+#ifndef FEATURE_REDHAWK
+ // IsGCThread() always returns false on CoreRT, but this assert is useful in CoreCLR.
assert(!!IsGCThread());
+#endif // FEATURE_REDHAWK
adjust_ephemeral_limits();
return TRUE;
}
@@ -36478,11 +36484,13 @@ void GCHeap::DiagScanFinalizeQueue (fq_scan_fn fn, ScanContext* sc)
void GCHeap::DiagScanHandles (handle_scan_fn fn, int gen_number, ScanContext* context)
{
+ UNREFERENCED_PARAMETER(gen_number);
GCScan::GcScanHandlesForProfilerAndETW (max_generation, context, fn);
}
void GCHeap::DiagScanDependentHandles (handle_scan_fn fn, int gen_number, ScanContext* context)
{
+ UNREFERENCED_PARAMETER(gen_number);
GCScan::GcScanDependentHandlesForProfilerAndETW (max_generation, context, fn);
}