< prev index next >

src/share/vm/runtime/mutex.hpp

Print this page
rev 13131 : [mq]: G1LockOrderProblems

*** 1,7 **** /* ! * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 91,100 **** --- 91,104 ---- public: // A special lock: Is a lock where you are guaranteed not to block while you are // holding it, i.e., no vm operation can happen, taking other locks, etc. // NOTE: It is critical that the rank 'special' be the lowest (earliest) // (except for "event"?) for the deadlock detection to work correctly. + // The rank access is reserved for locks that may be required to perform + // memory accesses that require special GC barriers, such as SATB barriers. + // Since memory accesses should be able to be performed pretty much anywhere + // in the code, that wannts being more special than the "special" rank. // The rank native is only for use in Mutex's created by JVM_RawMonitorCreate, // which being external to the VM are not subject to deadlock detection. // The rank safepoint is used only for synchronization in reaching a // safepoint and leaving a safepoint. It is only used for the Safepoint_lock // currently. While at a safepoint no mutexes of rank safepoint are held
*** 102,112 **** // The rank named "leaf" is probably historical (and should // be changed) -- mutexes of this rank aren't really leaf mutexes // at all. enum lock_types { event, ! special, suspend_resume, leaf = suspend_resume + 2, safepoint = leaf + 10, barrier = safepoint + 1, nonleaf = barrier + 1, --- 106,117 ---- // The rank named "leaf" is probably historical (and should // be changed) -- mutexes of this rank aren't really leaf mutexes // at all. enum lock_types { event, ! access = event + 1, ! special = access + 3, suspend_resume, leaf = suspend_resume + 2, safepoint = leaf + 10, barrier = safepoint + 1, nonleaf = barrier + 1,
< prev index next >