提交 8a39cafc 编写于 作者: S sbohne

6686407: Fix for 6666698 broke -XX:BiasedLockingStartupDelay=0

Summary: Stack allocated VM_EnableBiasedLocking op must be marked as such
Reviewed-by: xlu, acorn, never, dholmes
上级 54e8ec26
/* /*
* Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
...@@ -37,11 +36,13 @@ static void enable_biased_locking(klassOop k) { ...@@ -37,11 +36,13 @@ static void enable_biased_locking(klassOop k) {
} }
class VM_EnableBiasedLocking: public VM_Operation { class VM_EnableBiasedLocking: public VM_Operation {
private:
bool _is_cheap_allocated;
public: public:
VM_EnableBiasedLocking() {} VM_EnableBiasedLocking(bool is_cheap_allocated) { _is_cheap_allocated = is_cheap_allocated; }
VMOp_Type type() const { return VMOp_EnableBiasedLocking; } VMOp_Type type() const { return VMOp_EnableBiasedLocking; }
Mode evaluation_mode() const { return _async_safepoint; } Mode evaluation_mode() const { return _is_cheap_allocated ? _async_safepoint : _safepoint; }
bool is_cheap_allocated() const { return true; } bool is_cheap_allocated() const { return _is_cheap_allocated; }
void doit() { void doit() {
// Iterate the system dictionary enabling biased locking for all // Iterate the system dictionary enabling biased locking for all
...@@ -67,7 +68,7 @@ class EnableBiasedLockingTask : public PeriodicTask { ...@@ -67,7 +68,7 @@ class EnableBiasedLockingTask : public PeriodicTask {
virtual void task() { virtual void task() {
// Use async VM operation to avoid blocking the Watcher thread. // Use async VM operation to avoid blocking the Watcher thread.
// VM Thread will free C heap storage. // VM Thread will free C heap storage.
VM_EnableBiasedLocking *op = new VM_EnableBiasedLocking(); VM_EnableBiasedLocking *op = new VM_EnableBiasedLocking(true);
VMThread::execute(op); VMThread::execute(op);
// Reclaim our storage and disenroll ourself // Reclaim our storage and disenroll ourself
...@@ -89,7 +90,7 @@ void BiasedLocking::init() { ...@@ -89,7 +90,7 @@ void BiasedLocking::init() {
EnableBiasedLockingTask* task = new EnableBiasedLockingTask(BiasedLockingStartupDelay); EnableBiasedLockingTask* task = new EnableBiasedLockingTask(BiasedLockingStartupDelay);
task->enroll(); task->enroll();
} else { } else {
VM_EnableBiasedLocking op; VM_EnableBiasedLocking op(false);
VMThread::execute(&op); VMThread::execute(&op);
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册