diff --git a/src/hotspot/share/code/dependencyContext.cpp b/src/hotspot/share/code/dependencyContext.cpp index ba2c45e..7027466 100644 --- a/src/hotspot/share/code/dependencyContext.cpp +++ b/src/hotspot/share/code/dependencyContext.cpp @@ -35,8 +35,9 @@ PerfCounter* DependencyContext::_perf_total_buckets_allocated_count = NULL; PerfCounter* DependencyContext::_perf_total_buckets_deallocated_count = NULL; PerfCounter* DependencyContext::_perf_total_buckets_stale_count = NULL; PerfCounter* DependencyContext::_perf_total_buckets_stale_acc_count = NULL; -nmethodBucket* volatile DependencyContext::_purge_list = NULL; -volatile uint64_t DependencyContext::_cleaning_epoch = 0; +nmethodBucket* volatile DependencyContext::_purge_list = NULL; +volatile uint64_t DependencyContext::_cleaning_epoch = 0; +uint64_t DependencyContext::_cleaning_epoch_monotonic = 0; void dependencyContext_init() { DependencyContext::init(); @@ -311,7 +312,7 @@ nmethodBucket* DependencyContext::dependencies() { // a purge list to be deleted later. void DependencyContext::cleaning_start() { assert(SafepointSynchronize::is_at_safepoint(), "must be"); - uint64_t epoch = SafepointSynchronize::safepoint_counter(); + uint64_t epoch = ++_cleaning_epoch_monotonic; Atomic::store(epoch, &_cleaning_epoch); }