src/share/vm/runtime/objectMonitor.inline.hpp

changeset 4471
22ba8c8ce6a6
parent 2314
f95d63e2154a
child 6876
710a3c8b516e
equal deleted inserted replaced
4470:f3184f32ce0b 4471:22ba8c8ce6a6
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

mercurial