equal
deleted
inserted
replaced
87 bool VM_GC_Operation::doit_prologue() { |
87 bool VM_GC_Operation::doit_prologue() { |
88 assert(Thread::current()->is_Java_thread(), "just checking"); |
88 assert(Thread::current()->is_Java_thread(), "just checking"); |
89 assert(((_gc_cause != GCCause::_no_gc) && |
89 assert(((_gc_cause != GCCause::_no_gc) && |
90 (_gc_cause != GCCause::_no_cause_specified)), "Illegal GCCause"); |
90 (_gc_cause != GCCause::_no_cause_specified)), "Illegal GCCause"); |
91 |
91 |
|
92 // To be able to handle a GC the VM initialization needs to be completed. |
|
93 if (!is_init_completed()) { |
|
94 vm_exit_during_initialization( |
|
95 err_msg("GC triggered before VM initialization completed. Try increasing " |
|
96 "NewSize, current value " UINTX_FORMAT "%s.", |
|
97 byte_size_in_proper_unit(NewSize), |
|
98 proper_unit_for_byte_size(NewSize))); |
|
99 } |
|
100 |
92 acquire_pending_list_lock(); |
101 acquire_pending_list_lock(); |
93 // If the GC count has changed someone beat us to the collection |
102 // If the GC count has changed someone beat us to the collection |
94 // Get the Heap_lock after the pending_list_lock. |
103 // Get the Heap_lock after the pending_list_lock. |
95 Heap_lock->lock(); |
104 Heap_lock->lock(); |
96 |
105 |