--- a/src/hotspot/share/code/dependencyContext.hpp Wed Jun 26 11:25:51 2019 -0400
+++ b/src/hotspot/share/code/dependencyContext.hpp Wed Jun 26 18:22:28 2019 +0200
@@ -99,15 +99,15 @@
// Safepoints are forbidden during DC lifetime. GC can invalidate
// _dependency_context_addr if it relocates the holder
// (e.g. CallSiteContext Java object).
- uint64_t _safepoint_counter;
+ SafepointStateTracker _safepoint_tracker;
DependencyContext(nmethodBucket* volatile* bucket_addr, volatile uint64_t* last_cleanup_addr)
: _dependency_context_addr(bucket_addr),
_last_cleanup_addr(last_cleanup_addr),
- _safepoint_counter(SafepointSynchronize::safepoint_counter()) {}
+ _safepoint_tracker(SafepointSynchronize::safepoint_state_tracker()) {}
~DependencyContext() {
- assert(SafepointSynchronize::is_same_safepoint(_safepoint_counter), "must be the same safepoint");
+ assert(!_safepoint_tracker.safepoint_state_changed(), "must be the same safepoint");
}
#else
DependencyContext(nmethodBucket* volatile* bucket_addr, volatile uint64_t* last_cleanup_addr)