src/share/vm/runtime/safepoint.cpp

Print this page
rev 4973 : imported patch checkpointing.diff


 524   }
 525 
 526   if (SymbolTable::needs_rehashing()) {
 527     TraceTime t5("rehashing symbol table", TraceSafepointCleanupTime);
 528     SymbolTable::rehash_table();
 529   }
 530 
 531   if (StringTable::needs_rehashing()) {
 532     TraceTime t6("rehashing string table", TraceSafepointCleanupTime);
 533     StringTable::rehash_table();
 534   }
 535 
 536   // rotate log files?
 537   if (UseGCLogFileRotation) {
 538     gclog_or_tty->rotate_log();
 539   }
 540 
 541   if (MemTracker::is_on()) {
 542     MemTracker::sync();
 543   }

 544 }
 545 
 546 
 547 bool SafepointSynchronize::safepoint_safe(JavaThread *thread, JavaThreadState state) {
 548   switch(state) {
 549   case _thread_in_native:
 550     // native threads are safe if they have no java stack or have walkable stack
 551     return !thread->has_last_Java_frame() || thread->frame_anchor()->walkable();
 552 
 553    // blocked threads should have already have walkable stack
 554   case _thread_blocked:
 555     assert(!thread->has_last_Java_frame() || thread->frame_anchor()->walkable(), "blocked and not walkable");
 556     return true;
 557 
 558   default:
 559     return false;
 560   }
 561 }
 562 
 563 




 524   }
 525 
 526   if (SymbolTable::needs_rehashing()) {
 527     TraceTime t5("rehashing symbol table", TraceSafepointCleanupTime);
 528     SymbolTable::rehash_table();
 529   }
 530 
 531   if (StringTable::needs_rehashing()) {
 532     TraceTime t6("rehashing string table", TraceSafepointCleanupTime);
 533     StringTable::rehash_table();
 534   }
 535 
 536   // rotate log files?
 537   if (UseGCLogFileRotation) {
 538     gclog_or_tty->rotate_log();
 539   }
 540 
 541   if (MemTracker::is_on()) {
 542     MemTracker::sync();
 543   }
 544 
 545 }
 546 
 547 
 548 bool SafepointSynchronize::safepoint_safe(JavaThread *thread, JavaThreadState state) {
 549   switch(state) {
 550   case _thread_in_native:
 551     // native threads are safe if they have no java stack or have walkable stack
 552     return !thread->has_last_Java_frame() || thread->frame_anchor()->walkable();
 553 
 554    // blocked threads should have already have walkable stack
 555   case _thread_blocked:
 556     assert(!thread->has_last_Java_frame() || thread->frame_anchor()->walkable(), "blocked and not walkable");
 557     return true;
 558 
 559   default:
 560     return false;
 561   }
 562 }
 563 
 564