equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
99 // return number of threads contending for this monitor |
99 // return number of threads contending for this monitor |
100 inline intptr_t ObjectMonitor::contentions() const { |
100 inline intptr_t ObjectMonitor::contentions() const { |
101 return _count; |
101 return _count; |
102 } |
102 } |
103 |
103 |
|
104 // Do NOT set _count = 0. There is a race such that _count could |
|
105 // be set while inflating prior to setting _owner |
|
106 // Just use Atomic::inc/dec and assert 0 when monitor put on free list |
104 inline void ObjectMonitor::set_owner(void* owner) { |
107 inline void ObjectMonitor::set_owner(void* owner) { |
105 _owner = owner; |
108 _owner = owner; |
106 _recursions = 0; |
109 _recursions = 0; |
107 _count = 0; |
|
108 } |
110 } |
109 |
111 |
110 |
112 |
111 #endif // SHARE_VM_RUNTIME_OBJECTMONITOR_INLINE_HPP |
113 #endif // SHARE_VM_RUNTIME_OBJECTMONITOR_INLINE_HPP |