181 // This initialization routine should only be called once and
182 // schedules a PeriodicTask to turn on biased locking a few seconds
183 // into the VM run to avoid startup time regressions
184 static void init();
185
186 // This provides a global switch for leaving biased locking disabled
187 // for the first part of a run and enabling it later
188 static bool enabled();
189
190 // This should be called by JavaThreads to revoke the bias of an object
191 static void revoke(Handle obj, TRAPS);
192
193 // This should be called by a JavaThread to revoke the bias of an owned object
194 static void revoke_own_locks(Handle obj, TRAPS);
195
196 static void revoke_at_safepoint(Handle obj);
197
198 // These are used by deoptimization to ensure that monitors on the stack
199 // can be migrated
200 static void revoke(GrowableArray<Handle>* objs, JavaThread *biaser);
201 static void revoke_at_safepoint(GrowableArray<Handle>* objs);
202
203 static void print_counters() { _counters.print(); }
204 static BiasedLockingCounters* counters() { return &_counters; }
205
206 // These routines are GC-related and should not be called by end
207 // users. GCs which do not do preservation of mark words do not need
208 // to call these routines.
209 static void preserve_marks();
210 static void restore_marks();
211 };
212
213 #endif // SHARE_RUNTIME_BIASEDLOCKING_HPP
|
181 // This initialization routine should only be called once and
182 // schedules a PeriodicTask to turn on biased locking a few seconds
183 // into the VM run to avoid startup time regressions
184 static void init();
185
186 // This provides a global switch for leaving biased locking disabled
187 // for the first part of a run and enabling it later
188 static bool enabled();
189
190 // This should be called by JavaThreads to revoke the bias of an object
191 static void revoke(Handle obj, TRAPS);
192
193 // This should be called by a JavaThread to revoke the bias of an owned object
194 static void revoke_own_locks(Handle obj, TRAPS);
195
196 static void revoke_at_safepoint(Handle obj);
197
198 // These are used by deoptimization to ensure that monitors on the stack
199 // can be migrated
200 static void revoke(GrowableArray<Handle>* objs, JavaThread *biaser);
201
202 static void print_counters() { _counters.print(); }
203 static BiasedLockingCounters* counters() { return &_counters; }
204
205 // These routines are GC-related and should not be called by end
206 // users. GCs which do not do preservation of mark words do not need
207 // to call these routines.
208 static void preserve_marks();
209 static void restore_marks();
210 };
211
212 #endif // SHARE_RUNTIME_BIASEDLOCKING_HPP
|