src/hotspot/share/jfr/support/jfrThreadLocal.cpp
branchJEP-349-branch
changeset 58154 060d9d139109
parent 58100 0e549560be5e
parent 58084 cddef3bde924
child 58155 1fe292a94df1
equal deleted inserted replaced
58101:84b0544833c4 58154:060d9d139109
   124   }
   124   }
   125   if (tl->has_java_buffer()) {
   125   if (tl->has_java_buffer()) {
   126     JfrStorage::release_thread_local(tl->java_buffer(), t);
   126     JfrStorage::release_thread_local(tl->java_buffer(), t);
   127   }
   127   }
   128   FREE_C_HEAP_ARRAY(JfrStackFrame, tl->_stackframes);
   128   FREE_C_HEAP_ARRAY(JfrStackFrame, tl->_stackframes);
   129   }
       
   130 }
   129 }
   131 
   130 
   132 void JfrThreadLocal::on_exit(Thread* t) {
   131 void JfrThreadLocal::on_exit(Thread* t) {
   133   assert(t != NULL, "invariant");
   132   assert(t != NULL, "invariant");
   134   JfrThreadLocal * const tl = t->jfr_thread_local();
   133   JfrThreadLocal * const tl = t->jfr_thread_local();
   135   assert(!tl->is_dead(), "invariant");
   134   assert(!tl->is_dead(), "invariant");
   136   if (JfrRecorder::is_recording()) {
   135   if (JfrRecorder::is_recording()) {
   137     if (t->is_Java_thread() && !tl->is_excluded()) {
   136     if (t->is_Java_thread()) {
   138       JavaThread* const jt = (JavaThread*)t;
   137       JavaThread* const jt = (JavaThread*)t;
   139       ObjectSampleCheckpoint::on_thread_exit(jt);
   138       ObjectSampleCheckpoint::on_thread_exit(jt);
   140       send_java_thread_end_events(tl->thread_id(), jt);
   139       send_java_thread_end_events(tl->thread_id(), jt);
   141     }
   140     }
   142   }
   141   }