summaryrefslogtreecommitdiff
path: root/src/vm/util.cpp
diff options
context:
space:
mode:
authorEvgeny Pavlov <e.pavlov@samsung.com>2016-07-27 16:27:17 +0300
committerEvgeny Pavlov <e.pavlov@samsung.com>2016-07-27 16:27:17 +0300
commit27e570de343590fb99a1d9862668ab13843e42be (patch)
tree4457df07c9aa95f452cec9a7aacc314ab6560b8e /src/vm/util.cpp
parent0fdb42a7d63c0038426abe6be46b973e47131505 (diff)
downloadcoreclr-27e570de343590fb99a1d9862668ab13843e42be.tar.gz
coreclr-27e570de343590fb99a1d9862668ab13843e42be.tar.bz2
coreclr-27e570de343590fb99a1d9862668ab13843e42be.zip
Add flag to check re-entrancy of JIT notification
Diffstat (limited to 'src/vm/util.cpp')
-rw-r--r--src/vm/util.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/vm/util.cpp b/src/vm/util.cpp
index 703564e2f2..3ce26d6653 100644
--- a/src/vm/util.cpp
+++ b/src/vm/util.cpp
@@ -3361,6 +3361,7 @@ void InitializeClrNotifications()
#if defined(FEATURE_GDBJIT)
#include "gdbjit.h"
+__declspec(thread) bool tls_isSymReaderInProgress = false;
#endif // FEATURE_GDBJIT
// called from the runtime
@@ -3375,7 +3376,12 @@ void DACNotify::DoJITNotification(MethodDesc *MethodDescPtr)
}
CONTRACTL_END;
#if defined(FEATURE_GDBJIT) && defined(FEATURE_PAL) && !defined(CROSSGEN_COMPILE)
- NotifyGdb::MethodCompiled(MethodDescPtr);
+ if(!tls_isSymReaderInProgress)
+ {
+ tls_isSymReaderInProgress = true;
+ NotifyGdb::MethodCompiled(MethodDescPtr);
+ tls_isSymReaderInProgress = false;
+ }
#endif
TADDR Args[2] = { JIT_NOTIFICATION, (TADDR) MethodDescPtr };
DACNotifyExceptionHelper(Args, 2);