hotspot/src/share/vm/runtime/objectMonitor.inline.hpp
changeset 15234 ff1f01be5fbd
parent 7397 5b173b4ca846
child 27165 785a8d56024c
equal deleted inserted replaced
15233:c06b129cf6c7 15234:ff1f01be5fbd
     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