Mercurial > hg > truffle
comparison src/share/vm/runtime/thread.cpp @ 806:821269eca479
6820167: GCALotAtAllSafepoints + FullGCALot(ScavengeALot) options crash JVM
Summary: Short-circuit gc-a-lot attempts by non-JavaThreads; SkipGCALot c'tor to elide re-entrant gc-a-lot attempts.
Reviewed-by: apetrusenko, jcoomes, jmasa, kamg
author | ysr |
---|---|
date | Thu, 11 Jun 2009 12:40:00 -0700 |
parents | b9fba36710f2 |
children | bd02caa94611 |
comparison
equal
deleted
inserted
replaced
800:7295839252de | 806:821269eca479 |
---|---|
125 | 125 |
126 // plain initialization | 126 // plain initialization |
127 debug_only(_owned_locks = NULL;) | 127 debug_only(_owned_locks = NULL;) |
128 debug_only(_allow_allocation_count = 0;) | 128 debug_only(_allow_allocation_count = 0;) |
129 NOT_PRODUCT(_allow_safepoint_count = 0;) | 129 NOT_PRODUCT(_allow_safepoint_count = 0;) |
130 NOT_PRODUCT(_skip_gcalot = false;) | |
130 CHECK_UNHANDLED_OOPS_ONLY(_gc_locked_out_count = 0;) | 131 CHECK_UNHANDLED_OOPS_ONLY(_gc_locked_out_count = 0;) |
131 _jvmti_env_iteration_count = 0; | 132 _jvmti_env_iteration_count = 0; |
132 _vm_operation_started_count = 0; | 133 _vm_operation_started_count = 0; |
133 _vm_operation_completed_count = 0; | 134 _vm_operation_completed_count = 0; |
134 _current_pending_monitor = NULL; | 135 _current_pending_monitor = NULL; |
782 | 783 |
783 if (GCALotAtAllSafepoints) { | 784 if (GCALotAtAllSafepoints) { |
784 // We could enter a safepoint here and thus have a gc | 785 // We could enter a safepoint here and thus have a gc |
785 InterfaceSupport::check_gc_alot(); | 786 InterfaceSupport::check_gc_alot(); |
786 } | 787 } |
787 | |
788 #endif | 788 #endif |
789 } | 789 } |
790 #endif | 790 #endif |
791 | 791 |
792 bool Thread::is_in_stack(address adr) const { | 792 bool Thread::is_in_stack(address adr) const { |