162 // falls into the slow path, or is resumed from the safepoints in |
162 // falls into the slow path, or is resumed from the safepoints in |
163 // the method, which only exist in the slow path. So when _needs_gc |
163 // the method, which only exist in the slow path. So when _needs_gc |
164 // is set, the slow path is always taken, till _needs_gc is cleared. |
164 // is set, the slow path is always taken, till _needs_gc is cleared. |
165 static void lock_critical(JavaThread* thread); |
165 static void lock_critical(JavaThread* thread); |
166 static void unlock_critical(JavaThread* thread); |
166 static void unlock_critical(JavaThread* thread); |
|
167 |
|
168 static address needs_gc_address() { return (address) &_needs_gc; } |
167 }; |
169 }; |
168 |
170 |
169 |
171 |
170 // A No_GC_Verifier object can be placed in methods where one assumes that |
172 // A No_GC_Verifier object can be placed in methods where one assumes that |
171 // no garbage collection will occur. The destructor will verify this property |
173 // no garbage collection will occur. The destructor will verify this property |