You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2018/07/11 16:22:40 UTC
[23/27] hbase-site git commit: Published site at
a838f7631f60d5c12736e8dae2856e1cc5a3bd99.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c91fafb4/devapidocs/org/apache/hadoop/hbase/procedure2/LockAndQueue.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/LockAndQueue.html b/devapidocs/org/apache/hadoop/hbase/procedure2/LockAndQueue.html
index 855268c..cb449a5 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/LockAndQueue.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/LockAndQueue.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -100,37 +100,22 @@ var activeTableTab = "activeTableTab";
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util">java.util.AbstractCollection</a><E></li>
-<li>
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true" title="class or interface in java.util">java.util.ArrayDeque</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>></li>
-<li>
-<ul class="inheritance">
-<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">org.apache.hadoop.hbase.procedure2.ProcedureDeque</a></li>
-<li>
-<ul class="inheritance">
<li>org.apache.hadoop.hbase.procedure2.LockAndQueue</li>
</ul>
</li>
</ul>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
-<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="cl
ass or interface in java.util">Deque</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html?is-external=true" title="class or interface in java.util">Queue</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.48">LockAndQueue</a>
-extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.50">LockAndQueue</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></pre>
<div class="block">Locking for mutual exclusion between procedures. Used only by procedure framework internally.
<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html" title="class in org.apache.hadoop.hbase.procedure2"><code>LockAndQueue</code></a> has two purposes:
@@ -154,10 +139,6 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
because try-lock functions require procedure id.
<br>
We do not use ReentrantReadWriteLock directly because of its high memory overhead.</div>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../serialized-form.html#org.apache.hadoop.hbase.procedure2.LockAndQueue">Serialized Form</a></dd>
-</dl>
</li>
</ul>
</div>
@@ -181,6 +162,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#exclusiveLockOwnerProcedure">exclusiveLockOwnerProcedure</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#queue">queue</a></span></code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#sharedLock">sharedLock</a></span></code> </td>
</tr>
@@ -217,92 +202,84 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#addLast-org.apache.hadoop.hbase.procedure2.Procedure-">addLast</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html?is-external=true" title="class or interface in java.util.stream">Stream</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#filterWaitingQueue-java.util.function.Predicate-">filterWaitingQueue</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>> predicate)</code> </td>
+</tr>
+<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#getExclusiveLockOwnerProcedure--">getExclusiveLockOwnerProcedure</a></span>()</code> </td>
</tr>
-<tr id="i1" class="rowColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#getExclusiveLockProcIdOwner--">getExclusiveLockProcIdOwner</a></span>()</code> </td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#getSharedLockCount--">getSharedLockCount</a></span>()</code> </td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#hasExclusiveLock--">hasExclusiveLock</a></span>()</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#hasLockAccess-org.apache.hadoop.hbase.procedure2.Procedure-">hasLockAccess</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#hasLockAccess-org.apache.hadoop.hbase.procedure2.Procedure-">hasLockAccess</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#hasParentLock-org.apache.hadoop.hbase.procedure2.Procedure-">hasParentLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#hasParentLock-org.apache.hadoop.hbase.procedure2.Procedure-">hasParentLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</code> </td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#isLocked--">isLocked</a></span>()</code> </td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#isLockOwner-long-">isLockOwner</a></span>(long procId)</code> </td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#releaseExclusiveLock-org.apache.hadoop.hbase.procedure2.Procedure-">releaseExclusiveLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#isWaitingQueueEmpty--">isWaitingQueueEmpty</a></span>()</code> </td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#releaseExclusiveLock-org.apache.hadoop.hbase.procedure2.Procedure-">releaseExclusiveLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</code> </td>
+</tr>
+<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#releaseSharedLock--">releaseSharedLock</a></span>()</code> </td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#removeFirst--">removeFirst</a></span>()</code> </td>
+</tr>
+<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#toString--">toString</a></span>()</code> </td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#tryExclusiveLock-org.apache.hadoop.hbase.procedure2.Procedure-">tryExclusiveLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#tryExclusiveLock-org.apache.hadoop.hbase.procedure2.Procedure-">tryExclusiveLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</code> </td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#trySharedLock--">trySharedLock</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#trySharedLock-org.apache.hadoop.hbase.procedure2.Procedure-">trySharedLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</code> </td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html#wakeWaitingProcedures-org.apache.hadoop.hbase.procedure2.ProcedureScheduler-">wakeWaitingProcedures</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a> scheduler)</code> </td>
</tr>
</table>
<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.util.ArrayDeque">
-<!-- -->
-</a>
-<h3>Methods inherited from class java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true" title="class or interface in java.util">ArrayDeque</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#add-E-" title="class or interface in java.util">add</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#addFirst-E-" title="class or interface in java.util">addFirst</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#addLast-E-" title="class or interface in java.util">addLast</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#clear--" title="class or interface in java.util">clear</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#clone--" title="class or interface in java.util">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#contains-java.lang.Object-" title="class or interface in java.util">contains</a>, <a href="https://docs.oracle.com/jav
ase/8/docs/api/java/util/ArrayDeque.html?is-external=true#descendingIterator--" title="class or interface in java.util">descendingIterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#element--" title="class or interface in java.util">element</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#getFirst--" title="class or interface in java.util">getFirst</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#getLast--" title="class or interface in java.util">getLast</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#isEmpty--" title="class or interface in java.util">isEmpty</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#iterator--" title="class or interface in java.util">iterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/uti
l/ArrayDeque.html?is-external=true#offer-E-" title="class or interface in java.util">offer</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#offerFirst-E-" title="class or interface in java.util">offerFirst</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#offerLast-E-" title="class or interface in java.util">offerLast</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#peek--" title="class or interface in java.util">peek</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#peekFirst--" title="class or interface in java.util">peekFirst</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#peekLast--" title="class or interface in java.util">peekLast</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#poll-
-" title="class or interface in java.util">poll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#pollFirst--" title="class or interface in java.util">pollFirst</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#pollLast--" title="class or interface in java.util">pollLast</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#pop--" title="class or interface in java.util">pop</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#push-E-" title="class or interface in java.util">push</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#remove--" title="class or interface in java.util">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#remove-java.lang.Object-" title="class or interface in java.util">rem
ove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#removeFirst--" title="class or interface in java.util">removeFirst</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#removeFirstOccurrence-java.lang.Object-" title="class or interface in java.util">removeFirstOccurrence</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#removeLast--" title="class or interface in java.util">removeLast</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#removeLastOccurrence-java.lang.Object-" title="class or interface in java.util">removeLastOccurrence</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#size--" title="class or interface in java.util">size</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#spliterato
r--" title="class or interface in java.util">spliterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#toArray--" title="class or interface in java.util">toArray</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html?is-external=true#toArray-T:A-" title="class or interface in java.util">toArray</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.util.AbstractCollection">
-<!-- -->
-</a>
-<h3>Methods inherited from class java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util">AbstractCollection</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#addAll-java.util.Collection-" title="class or interface in java.util">addAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#containsAll-java.util.Collection-" title="class or interface in java.util">containsAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#removeAll-java.util.Collection-" title="class or interface in java.util">removeAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#retainAll-java.util.Collection-" title="class or interface in java.util">retainAll</a></code></li>
-</ul>
-<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/doc
s/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.util.Collection">
-<!-- -->
-</a>
-<h3>Methods inherited from interface java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#addAll-java.util.Collection-" title="class or interface in java.util">addAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#containsAll-java.util.Collection-" title="class or interface in java.util">containsAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.util">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#hashCode--" title="class or interface in java.util">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#parallelStream--" title="class or interface in java.util">parallelStream</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#removeAll-java.util.Collection-
" title="class or interface in java.util">removeAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#removeIf-java.util.function.Predicate-" title="class or interface in java.util">removeIf</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#retainAll-java.util.Collection-" title="class or interface in java.util">retainAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#stream--" title="class or interface in java.util">stream</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Iterable">
-<!-- -->
-</a>
-<h3>Methods inherited from interface java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach-java.util.function.Consumer-" title="class or interface in java.lang">forEach</a></code></li>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
@@ -318,13 +295,22 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<!-- -->
</a>
<h3>Field Detail</h3>
+<a name="queue">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queue</h4>
+<pre>private final <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.51">queue</a></pre>
+</li>
+</ul>
<a name="exclusiveLockOwnerProcedure">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exclusiveLockOwnerProcedure</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.49">exclusiveLockOwnerProcedure</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.52">exclusiveLockOwnerProcedure</a></pre>
</li>
</ul>
<a name="sharedLock">
@@ -333,7 +319,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockListLast">
<li class="blockList">
<h4>sharedLock</h4>
-<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.50">sharedLock</a></pre>
+<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.53">sharedLock</a></pre>
</li>
</ul>
</li>
@@ -350,7 +336,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockListLast">
<li class="blockList">
<h4>LockAndQueue</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.48">LockAndQueue</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.50">LockAndQueue</a>()</pre>
</li>
</ul>
</li>
@@ -367,7 +353,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>isLocked</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.57">isLocked</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.60">isLocked</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#isLocked--">isLocked</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></code></dd>
@@ -380,7 +366,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>hasExclusiveLock</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.62">hasExclusiveLock</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.65">hasExclusiveLock</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#hasExclusiveLock--">hasExclusiveLock</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></code></dd>
@@ -393,7 +379,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>isLockOwner</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.67">isLockOwner</a>(long procId)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.70">isLockOwner</a>(long procId)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#isLockOwner-long-">isLockOwner</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></code></dd>
@@ -406,7 +392,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>hasParentLock</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.72">hasParentLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.75">hasParentLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#hasParentLock-org.apache.hadoop.hbase.procedure2.Procedure-">hasParentLock</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></code></dd>
@@ -419,7 +405,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>hasLockAccess</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.77">hasLockAccess</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.82">hasLockAccess</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#hasLockAccess-org.apache.hadoop.hbase.procedure2.Procedure-">hasLockAccess</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></code></dd>
@@ -432,7 +418,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>getExclusiveLockOwnerProcedure</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.82">getExclusiveLockOwnerProcedure</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.87">getExclusiveLockOwnerProcedure</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#getExclusiveLockOwnerProcedure--">getExclusiveLockOwnerProcedure</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></code></dd>
@@ -445,7 +431,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>getExclusiveLockProcIdOwner</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.87">getExclusiveLockProcIdOwner</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.92">getExclusiveLockProcIdOwner</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#getExclusiveLockProcIdOwner--">getExclusiveLockProcIdOwner</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></code></dd>
@@ -458,20 +444,24 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>getSharedLockCount</h4>
-<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.96">getSharedLockCount</a>()</pre>
+<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.101">getSharedLockCount</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#getSharedLockCount--">getSharedLockCount</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a></code></dd>
</dl>
</li>
</ul>
-<a name="trySharedLock--">
+<a name="trySharedLock-org.apache.hadoop.hbase.procedure2.Procedure-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trySharedLock</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.104">trySharedLock</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.112">trySharedLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether we have succesfully acquired the shared lock.</dd>
+</dl>
</li>
</ul>
<a name="releaseSharedLock--">
@@ -480,7 +470,11 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>releaseSharedLock</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.110">releaseSharedLock</a>()</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.126">releaseSharedLock</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether we should wake the procedures waiting on the lock here.</dd>
+</dl>
</li>
</ul>
<a name="tryExclusiveLock-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -489,7 +483,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>tryExclusiveLock</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.114">tryExclusiveLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.133">tryExclusiveLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="releaseExclusiveLock-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -498,23 +492,68 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus
<ul class="blockList">
<li class="blockList">
<h4>releaseExclusiveLock</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.123">releaseExclusiveLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.144">releaseExclusiveLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
-<dd>True if we released a lock.</dd>
+<dd>whether we should wake the procedures waiting on the lock here.</dd>
</dl>
</li>
</ul>
+<a name="isWaitingQueueEmpty--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWaitingQueueEmpty</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.161">isWaitingQueueEmpty</a>()</pre>
+</li>
+</ul>
+<a name="removeFirst--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeFirst</h4>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.165">removeFirst</a>()</pre>
+</li>
+</ul>
+<a name="addLast-org.apache.hadoop.hbase.procedure2.Procedure-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addLast</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.169">addLast</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
+</li>
+</ul>
+<a name="wakeWaitingProcedures-org.apache.hadoop.hbase.procedure2.ProcedureScheduler-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>wakeWaitingProcedures</h4>
+<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.173">wakeWaitingProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a> scheduler)</pre>
+</li>
+</ul>
+<a name="filterWaitingQueue-java.util.function.Predicate-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>filterWaitingQueue</h4>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html?is-external=true" title="class or interface in java.util.stream">Stream</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.183">filterWaitingQueue</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>> predicate)</pre>
+</li>
+</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.132">toString</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockAndQueue.html#line.188">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#toString--" title="class or interface in java.util">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util">AbstractCollection</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c91fafb4/devapidocs/org/apache/hadoop/hbase/procedure2/LockStatus.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/LockStatus.html b/devapidocs/org/apache/hadoop/hbase/procedure2/LockStatus.html
index 26826d6..df4a7e1 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/LockStatus.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/LockStatus.html
@@ -146,11 +146,11 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/proced
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#hasLockAccess-org.apache.hadoop.hbase.procedure2.Procedure-">hasLockAccess</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#hasLockAccess-org.apache.hadoop.hbase.procedure2.Procedure-">hasLockAccess</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</code> </td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#hasParentLock-org.apache.hadoop.hbase.procedure2.Procedure-">hasParentLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html#hasParentLock-org.apache.hadoop.hbase.procedure2.Procedure-">hasParentLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</code> </td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
@@ -208,7 +208,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/proced
<ul class="blockList">
<li class="blockList">
<h4>hasParentLock</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockStatus.html#line.36">hasParentLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockStatus.html#line.36">hasParentLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="hasLockAccess-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -217,7 +217,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/proced
<ul class="blockList">
<li class="blockList">
<h4>hasLockAccess</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockStatus.html#line.38">hasLockAccess</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/LockStatus.html#line.38">hasLockAccess</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> proc)</pre>
</li>
</ul>
<a name="getExclusiveLockOwnerProcedure--">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c91fafb4/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureDeque.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureDeque.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureDeque.html
index 7353f3b..7ce9548 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureDeque.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureDeque.html
@@ -115,10 +115,6 @@
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="cl
ass or interface in java.util">Deque</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html?is-external=true" title="class or interface in java.util">Queue</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>></dd>
</dl>
-<dl>
-<dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html" title="class in org.apache.hadoop.hbase.procedure2">LockAndQueue</a></dd>
-</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c91fafb4/devapidocs/org/apache/hadoop/hbase/procedure2/SimpleProcedureScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/SimpleProcedureScheduler.html b/devapidocs/org/apache/hadoop/hbase/procedure2/SimpleProcedureScheduler.html
index 7982eaf..15237d4 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/SimpleProcedureScheduler.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/SimpleProcedureScheduler.html
@@ -238,7 +238,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProce
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addBack-org.apache.hadoop.hbase.procedure2.Procedure-">addBack</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addFront-java.util.Iterator-">addFront</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addFront-org.apache.hadoop.hbase.procedure2.Procedure-">addFront</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#getNullPollCalls--">getNullPollCalls</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#getPollCalls--">getPollCalls</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#hasRunnables--">hasRunnables</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#poll--">poll</a>, <a href="../../../../../org/apache/hadoop/hb
ase/procedure2/AbstractProcedureScheduler.html#poll-long-">poll</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#poll-long-java.util.concurrent.TimeUnit-">poll</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#push-org.apache.hadoop.hbase.procedure2.Procedure-boolean-boolean-">push</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#schedLock--">schedLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#schedUnlock--">schedUnlock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#signalAll--">signalAll</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#size--">size</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#start--">start</a>, <a href="../../../../../org/apache/
hadoop/hbase/procedure2/AbstractProcedureScheduler.html#stop--">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#waitProcedure-org.apache.hadoop.hbase.procedure2.ProcedureDeque-org.apache.hadoop.hbase.procedure2.Procedure-">waitProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeEvents-org.apache.hadoop.hbase.procedure2.ProcedureEvent:A-">wakeEvents</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakePollIfNeeded-int-">wakePollIfNeeded</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">wakeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeWaitingProcedures-org.apache.hadoop.hbase.procedure2.ProcedureDeque-">wakeWaitingProcedures</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addBack-org.apache.hadoop.hbase.procedure2.Procedure-">addBack</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addFront-java.util.Iterator-">addFront</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addFront-org.apache.hadoop.hbase.procedure2.Procedure-">addFront</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#getNullPollCalls--">getNullPollCalls</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#getPollCalls--">getPollCalls</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#hasRunnables--">hasRunnables</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#poll--">poll</a>, <a href="../../../../../org/apache/hadoop/hb
ase/procedure2/AbstractProcedureScheduler.html#poll-long-">poll</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#poll-long-java.util.concurrent.TimeUnit-">poll</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#push-org.apache.hadoop.hbase.procedure2.Procedure-boolean-boolean-">push</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#schedLock--">schedLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#schedUnlock--">schedUnlock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#signalAll--">signalAll</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#size--">size</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#start--">start</a>, <a href="../../../../../org/apache/
hadoop/hbase/procedure2/AbstractProcedureScheduler.html#stop--">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#waitProcedure-org.apache.hadoop.hbase.procedure2.LockAndQueue-org.apache.hadoop.hbase.procedure2.Procedure-">waitProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeEvents-org.apache.hadoop.hbase.procedure2.ProcedureEvent:A-">wakeEvents</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakePollIfNeeded-int-">wakePollIfNeeded</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">wakeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeWaitingProcedures-org.apache.hadoop.hbase.procedure2.LockAndQueue-">wakeWaitingProcedures</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c91fafb4/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/LockAndQueue.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/LockAndQueue.html b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/LockAndQueue.html
index 76e04b9..06229e7 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/LockAndQueue.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/LockAndQueue.html
@@ -86,6 +86,10 @@
<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure</a></td>
<td class="colLast"> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2">org.apache.hadoop.hbase.procedure2</a></td>
+<td class="colLast"> </td>
+</tr>
</tbody>
</table>
</li>
@@ -237,6 +241,31 @@
</tbody>
</table>
</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.procedure2">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html" title="class in org.apache.hadoop.hbase.procedure2">LockAndQueue</a> in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html" title="class in org.apache.hadoop.hbase.procedure2">LockAndQueue</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractProcedureScheduler.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#waitProcedure-org.apache.hadoop.hbase.procedure2.LockAndQueue-org.apache.hadoop.hbase.procedure2.Procedure-">waitProcedure</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html" title="class in org.apache.hadoop.hbase.procedure2">LockAndQueue</a> lockAndQueue,
+ <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractProcedureScheduler.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeWaitingProcedures-org.apache.hadoop.hbase.procedure2.LockAndQueue-">wakeWaitingProcedures</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/LockAndQueue.html" title="class in org.apache.hadoop.hbase.procedure2">LockAndQueue</a> lockAndQueue)</code>
+<div class="block">Wakes up given waiting procedures by pushing them back into scheduler queues.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
</ul>
</li>
</ul>