src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.cpp
branchJEP-349-branch
changeset 57983 a57907813a83
parent 57934 9c150f2b1fea
child 58154 060d9d139109
equal deleted inserted replaced
57971:aa7b1ea52413 57983:a57907813a83
   182   JfrThreadLocal* const tl = thread->jfr_thread_local();
   182   JfrThreadLocal* const tl = thread->jfr_thread_local();
   183   assert(tl != NULL, "invariant");
   183   assert(tl != NULL, "invariant");
   184   assert(!tl->has_cached_stack_trace(), "invariant");
   184   assert(!tl->has_cached_stack_trace(), "invariant");
   185   JfrStackTrace stacktrace(tl->stackframes(), tl->stackdepth());
   185   JfrStackTrace stacktrace(tl->stackframes(), tl->stackdepth());
   186   stacktrace.record_safe(thread, skip);
   186   stacktrace.record_safe(thread, skip);
   187   assert(stacktrace.hash() != 0, "invariant");
   187   const unsigned int hash = stacktrace.hash();
   188   tl->set_cached_stack_trace_id(instance().add(stacktrace), stacktrace.hash());
   188   if (hash != 0) {
       
   189     tl->set_cached_stack_trace_id(instance().add(stacktrace), hash);
       
   190   }
   189 }
   191 }
   190 
   192 
   191 traceid JfrStackTraceRepository::add_trace(const JfrStackTrace& stacktrace) {
   193 traceid JfrStackTraceRepository::add_trace(const JfrStackTrace& stacktrace) {
   192   MutexLocker lock(JfrStacktrace_lock, Mutex::_no_safepoint_check_flag);
   194   MutexLocker lock(JfrStacktrace_lock, Mutex::_no_safepoint_check_flag);
   193   const size_t index = stacktrace._hash % TABLE_SIZE;
   195   const size_t index = stacktrace._hash % TABLE_SIZE;