summaryrefslogtreecommitdiff
path: root/src/vm/threads.cpp
diff options
context:
space:
mode:
authorAditya Mandaleeka <adityam@microsoft.com>2015-06-16 15:25:20 -0700
committerAditya Mandaleeka <adityam@microsoft.com>2015-08-13 12:25:06 -0700
commit02b0ce2b432d3e37769c0f46d315a91c83a0db77 (patch)
tree6361f4328adeb1f2779fa9c7fcb91f78bb00826e /src/vm/threads.cpp
parent34ca4064d690fbdb5b99647ec7a00ac603808192 (diff)
downloadcoreclr-02b0ce2b432d3e37769c0f46d315a91c83a0db77.tar.gz
coreclr-02b0ce2b432d3e37769c0f46d315a91c83a0db77.tar.bz2
coreclr-02b0ce2b432d3e37769c0f46d315a91c83a0db77.zip
Implement GC Suspension for Unix
Diffstat (limited to 'src/vm/threads.cpp')
-rw-r--r--src/vm/threads.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/vm/threads.cpp b/src/vm/threads.cpp
index 87ad9bc1f2..c4ce243e4f 100644
--- a/src/vm/threads.cpp
+++ b/src/vm/threads.cpp
@@ -2018,9 +2018,12 @@ Thread::Thread()
m_pCurrentStackGuard = NULL;
#endif
-#ifdef FEATURE_HIJACK
+#if defined(FEATURE_HIJACK) || defined(FEATURE_UNIX_GC_REDIRECT_HIJACK)
m_ppvHJRetAddrPtr = (VOID**) 0xCCCCCCCCCCCCCCCC;
m_pvHJRetAddr = (VOID*) 0xCCCCCCCCCCCCCCCC;
+#endif // FEATURE_HIJACK || FEATURE_UNIX_GC_REDIRECT_HIJACK
+
+#ifdef FEATURE_HIJACK
X86_ONLY(m_LastRedirectIP = 0);
X86_ONLY(m_SpinCount = 0);
#endif // FEATURE_HIJACK
@@ -8243,9 +8246,9 @@ void CommonTripThread()
if (thread->CatchAtSafePoint())
{
_ASSERTE(!ThreadStore::HoldingThreadStore(thread));
-#ifdef FEATURE_HIJACK
+#if defined(FEATURE_HIJACK) || defined(FEATURE_UNIX_GC_REDIRECT_HIJACK)
thread->UnhijackThread();
-#endif // FEATURE_HIJACK
+#endif // FEATURE_HIJACK || FEATURE_UNIX_GC_REDIRECT_HIJACK
// Trap
thread->PulseGCMode();
@@ -11240,7 +11243,7 @@ void Thread::AddFiberInfo(DWORD type)
pInfo->timeStamp = getTimeStamp();
pInfo->threadID = GetCurrentThreadId();
-#ifdef FEATURE_HIJACK
+#if defined(FEATURE_HIJACK) || defined(FEATURE_UNIX_GC_REDIRECT_HIJACK)
// We can't crawl the stack of a thread that currently has a hijack pending
// (since the hijack routine won't be recognized by any code manager). So we
// undo any hijack, the EE will re-attempt it later.