< prev index next >

src/hotspot/share/prims/resolvedMethodTable.cpp

Print this page




 310   ResolvedMethodTableDeleteCheck stdc;
 311   ResolvedMethodTableDoDelete stdd;
 312   {
 313     TraceTime timer("Clean", TRACETIME_LOG(Debug, membername, table, perf));
 314     while(bdt.do_task(jt, stdc, stdd)) {
 315       bdt.pause(jt);
 316       {
 317         ThreadBlockInVM tbivm(jt);
 318       }
 319       bdt.cont(jt);
 320     }
 321     bdt.done(jt);
 322   }
 323   log_info(membername, table)("Cleaned %ld of %ld", stdc._count, stdc._item);
 324 }
 325 void ResolvedMethodTable::reset_dead_counter() {
 326   _uncleaned_items_count = 0;
 327 }
 328 
 329 void ResolvedMethodTable::inc_dead_counter(size_t ndead) {
 330   size_t total = Atomic::add(ndead, &_uncleaned_items_count);
 331   log_trace(membername, table)(
 332      "Uncleaned items:" SIZE_FORMAT " added: " SIZE_FORMAT " total:" SIZE_FORMAT,
 333      _uncleaned_items_count, ndead, total);
 334 }
 335 
 336 // After the parallel walk this method must be called to trigger
 337 // cleaning. Note it might trigger a resize instead.
 338 void ResolvedMethodTable::finish_dead_counter() {
 339   check_concurrent_work();
 340 }
 341 
 342 #if INCLUDE_JVMTI
 343 class AdjustMethodEntries : public StackObj {
 344   bool* _trace_name_printed;
 345 public:
 346   AdjustMethodEntries(bool* trace_name_printed) : _trace_name_printed(trace_name_printed) {};
 347   bool operator()(WeakHandle<vm_resolved_method_table_data>* entry) {
 348     oop mem_name = entry->peek();
 349     if (mem_name == NULL) {
 350       // Removed




 310   ResolvedMethodTableDeleteCheck stdc;
 311   ResolvedMethodTableDoDelete stdd;
 312   {
 313     TraceTime timer("Clean", TRACETIME_LOG(Debug, membername, table, perf));
 314     while(bdt.do_task(jt, stdc, stdd)) {
 315       bdt.pause(jt);
 316       {
 317         ThreadBlockInVM tbivm(jt);
 318       }
 319       bdt.cont(jt);
 320     }
 321     bdt.done(jt);
 322   }
 323   log_info(membername, table)("Cleaned %ld of %ld", stdc._count, stdc._item);
 324 }
 325 void ResolvedMethodTable::reset_dead_counter() {
 326   _uncleaned_items_count = 0;
 327 }
 328 
 329 void ResolvedMethodTable::inc_dead_counter(size_t ndead) {
 330   size_t total = Atomic::add(&_uncleaned_items_count, ndead);
 331   log_trace(membername, table)(
 332      "Uncleaned items:" SIZE_FORMAT " added: " SIZE_FORMAT " total:" SIZE_FORMAT,
 333      _uncleaned_items_count, ndead, total);
 334 }
 335 
 336 // After the parallel walk this method must be called to trigger
 337 // cleaning. Note it might trigger a resize instead.
 338 void ResolvedMethodTable::finish_dead_counter() {
 339   check_concurrent_work();
 340 }
 341 
 342 #if INCLUDE_JVMTI
 343 class AdjustMethodEntries : public StackObj {
 344   bool* _trace_name_printed;
 345 public:
 346   AdjustMethodEntries(bool* trace_name_printed) : _trace_name_printed(trace_name_printed) {};
 347   bool operator()(WeakHandle<vm_resolved_method_table_data>* entry) {
 348     oop mem_name = entry->peek();
 349     if (mem_name == NULL) {
 350       // Removed


< prev index next >