http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b9722a17/devapidocs/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html ---------------------------------------------------------------------- diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html b/devapidocs/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html index ce260ce..435c524 100644 --- a/devapidocs/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html +++ b/devapidocs/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html @@ -18,7 +18,7 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10,"i2":6,"i3":6,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":6,"i12":6,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10}; +var methods = {"i0":10,"i1":10,"i2":10,"i3":6,"i4":6,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":6,"i13":6,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab"; <hr> <br> <pre>@InterfaceAudience.Private -public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.30">AbstractProcedureScheduler</a> +public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.31">AbstractProcedureScheduler</a> extends <a href="http://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/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a></pre> </li> @@ -203,145 +203,130 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS </tr> <tr id="i1" class="rowColor"> <td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addFront-java.util.Iterator-">addFront</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>> procedureIterator)</code> +<div class="block">Inserts all elements in the iterator at the front of this queue.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addFront-org.apache.hadoop.hbase.procedure2.Procedure-">addFront</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</code> <div class="block">Inserts the specified element at the front of this queue.</div> </td> </tr> -<tr id="i2" class="altColor"> +<tr id="i3" class="rowColor"> <td class="colFirst"><code>protected abstract <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/AbstractProcedureScheduler.html#dequeue--">dequeue</a></span>()</code> <div class="block">Fetch one Procedure from the queue NOTE: this method is called with the sched lock held.</div> </td> </tr> -<tr id="i3" class="rowColor"> +<tr id="i4" class="altColor"> <td class="colFirst"><code>protected abstract void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#enqueue-org.apache.hadoop.hbase.procedure2.Procedure-boolean-">enqueue</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure, boolean addFront)</code> <div class="block">Add the procedure to the queue.</div> </td> </tr> -<tr id="i4" class="altColor"> +<tr id="i5" class="rowColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#getNullPollCalls--">getNullPollCalls</a></span>()</code> </td> </tr> -<tr id="i5" class="rowColor"> +<tr id="i6" class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#getPollCalls--">getPollCalls</a></span>()</code> </td> </tr> -<tr id="i6" class="altColor"> +<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/AbstractProcedureScheduler.html#hasRunnables--">hasRunnables</a></span>()</code> </td> </tr> -<tr id="i7" class="rowColor"> +<tr id="i8" 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/AbstractProcedureScheduler.html#poll--">poll</a></span>()</code> <div class="block">Fetch one Procedure from the queue</div> </td> </tr> -<tr id="i8" class="altColor"> +<tr id="i9" 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/AbstractProcedureScheduler.html#poll-long-">poll</a></span>(long nanos)</code> </td> </tr> -<tr id="i9" class="rowColor"> +<tr id="i10" 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/AbstractProcedureScheduler.html#poll-long-java.util.concurrent.TimeUnit-">poll</a></span>(long timeout, <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a> unit)</code> <div class="block">Fetch one Procedure from the queue</div> </td> </tr> -<tr id="i10" class="altColor"> +<tr id="i11" class="rowColor"> <td class="colFirst"><code>protected void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#push-org.apache.hadoop.hbase.procedure2.Procedure-boolean-boolean-">push</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure, boolean addFront, boolean notify)</code> </td> </tr> -<tr id="i11" class="rowColor"> +<tr id="i12" class="altColor"> <td class="colFirst"><code>protected abstract boolean</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#queueHasRunnables--">queueHasRunnables</a></span>()</code> <div class="block">Returns true if there are procedures available to process.</div> </td> </tr> -<tr id="i12" class="altColor"> +<tr id="i13" class="rowColor"> <td class="colFirst"><code>protected abstract int</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#queueSize--">queueSize</a></span>()</code> <div class="block">Returns the number of elements in this queue.</div> </td> </tr> -<tr id="i13" class="rowColor"> +<tr id="i14" class="altColor"> <td class="colFirst"><code>protected void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#schedLock--">schedLock</a></span>()</code> </td> </tr> -<tr id="i14" class="altColor"> +<tr id="i15" class="rowColor"> <td class="colFirst"><code>protected void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#schedUnlock--">schedUnlock</a></span>()</code> </td> </tr> -<tr id="i15" class="rowColor"> +<tr id="i16" class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#signalAll--">signalAll</a></span>()</code> <div class="block">In case the class is blocking on poll() waiting for items to be added, this method should awake poll() and poll() should return.</div> </td> </tr> -<tr id="i16" class="altColor"> +<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/AbstractProcedureScheduler.html#size--">size</a></span>()</code> <div class="block">Returns the number of elements in this queue.</div> </td> </tr> -<tr id="i17" class="rowColor"> +<tr id="i18" class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#start--">start</a></span>()</code> <div class="block">Start the scheduler</div> </td> </tr> -<tr id="i18" class="altColor"> +<tr id="i19" class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#stop--">stop</a></span>()</code> <div class="block">Stop the scheduler</div> </td> </tr> -<tr id="i19" class="rowColor"> -<td class="colFirst"><code>void</code></td> -<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#suspendEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-">suspendEvent</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a> event)</code> -<div class="block">Mark the event as not ready.</div> -</td> -</tr> <tr id="i20" class="altColor"> -<td class="colFirst"><code>boolean</code></td> -<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#waitEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-org.apache.hadoop.hbase.procedure2.Procedure-">waitEvent</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a> event, - <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</code> -<div class="block">Suspend the procedure if the event is not ready yet.</div> -</td> -</tr> -<tr id="i21" class="rowColor"> <td class="colFirst"><code>protected void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#waitProcedure-org.apache.hadoop.hbase.procedure2.ProcedureDeque-org.apache.hadoop.hbase.procedure2.Procedure-">waitProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a> waitQueue, <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="i22" class="altColor"> -<td class="colFirst"><code>void</code></td> -<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-">wakeEvent</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a> event)</code> -<div class="block">Wake every procedure waiting for the specified event - (By design each event has only one "wake" caller)</div> -</td> -</tr> -<tr id="i23" class="rowColor"> -<td class="colFirst"><code>void</code></td> -<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeEvents-int-org.apache.hadoop.hbase.procedure2.ProcedureEvent...-">wakeEvents</a></span>(int count, - <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>... events)</code> -<div class="block">Wake every procedure waiting for the specified events.</div> +<tr id="i21" class="rowColor"> +<td class="colFirst"><code>(package private) void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeEvents-org.apache.hadoop.hbase.procedure2.ProcedureEvent:A-">wakeEvents</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>[] events)</code> +<div class="block">Wake up all of the given events.</div> </td> </tr> -<tr id="i24" class="altColor"> +<tr id="i22" class="altColor"> <td class="colFirst"><code>protected void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakePollIfNeeded-int-">wakePollIfNeeded</a></span>(int waitingCount)</code> </td> </tr> -<tr id="i25" class="rowColor"> +<tr id="i23" class="rowColor"> <td class="colFirst"><code>protected void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">wakeProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</code> </td> </tr> -<tr id="i26" class="altColor"> +<tr id="i24" class="altColor"> <td class="colFirst"><code>protected int</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#wakeWaitingProcedures-org.apache.hadoop.hbase.procedure2.ProcedureDeque-">wakeWaitingProcedures</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a> waitQueue)</code> <div class="block">Wakes up given waiting procedures by pushing them back into scheduler queues.</div> @@ -382,7 +367,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>LOG</h4> -<pre>private static final org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.31">LOG</a></pre> +<pre>private static final org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.32">LOG</a></pre> </li> </ul> <a name="schedulerLock"> @@ -391,7 +376,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>schedulerLock</h4> -<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.32">schedulerLock</a></pre> +<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.33">schedulerLock</a></pre> </li> </ul> <a name="schedWaitCond"> @@ -400,7 +385,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>schedWaitCond</h4> -<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.33">schedWaitCond</a></pre> +<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.34">schedWaitCond</a></pre> </li> </ul> <a name="running"> @@ -409,7 +394,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>running</h4> -<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.34">running</a></pre> +<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.35">running</a></pre> </li> </ul> <a name="pollCalls"> @@ -418,7 +403,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>pollCalls</h4> -<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.37">pollCalls</a></pre> +<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.38">pollCalls</a></pre> </li> </ul> <a name="nullPollCalls"> @@ -427,7 +412,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockListLast"> <li class="blockList"> <h4>nullPollCalls</h4> -<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.38">nullPollCalls</a></pre> +<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.39">nullPollCalls</a></pre> </li> </ul> </li> @@ -444,7 +429,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockListLast"> <li class="blockList"> <h4>AbstractProcedureScheduler</h4> -<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.30">AbstractProcedureScheduler</a>()</pre> +<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.31">AbstractProcedureScheduler</a>()</pre> </li> </ul> </li> @@ -461,7 +446,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>start</h4> -<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.41">start</a>()</pre> +<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.42">start</a>()</pre> <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#start--">ProcedureScheduler</a></code></span></div> <div class="block">Start the scheduler</div> <dl> @@ -476,7 +461,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>stop</h4> -<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.51">stop</a>()</pre> +<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.52">stop</a>()</pre> <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#stop--">ProcedureScheduler</a></code></span></div> <div class="block">Stop the scheduler</div> <dl> @@ -491,7 +476,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>signalAll</h4> -<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.62">signalAll</a>()</pre> +<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.63">signalAll</a>()</pre> <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#signalAll--">ProcedureScheduler</a></code></span></div> <div class="block">In case the class is blocking on poll() waiting for items to be added, this method should awake poll() and poll() should return.</div> @@ -507,7 +492,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>enqueue</h4> -<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.80">enqueue</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure, +<pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.81">enqueue</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure, boolean addFront)</pre> <div class="block">Add the procedure to the queue. NOTE: this method is called with the sched lock held.</div> @@ -524,7 +509,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>addFront</h4> -<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.82">addFront</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</pre> +<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.84">addFront</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</pre> <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#addFront-org.apache.hadoop.hbase.procedure2.Procedure-">ProcedureScheduler</a></code></span></div> <div class="block">Inserts the specified element at the front of this queue.</div> <dl> @@ -535,13 +520,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS </dl> </li> </ul> +<a name="addFront-java.util.Iterator-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addFront</h4> +<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.89">addFront</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>> procedureIterator)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#addFront-java.util.Iterator-">ProcedureScheduler</a></code></span></div> +<div class="block">Inserts all elements in the iterator at the front of this queue.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#addFront-java.util.Iterator-">addFront</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a></code></dd> +</dl> +</li> +</ul> <a name="addBack-org.apache.hadoop.hbase.procedure2.Procedure-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>addBack</h4> -<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.86">addBack</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</pre> +<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.108">addBack</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</pre> <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#addBack-org.apache.hadoop.hbase.procedure2.Procedure-">ProcedureScheduler</a></code></span></div> <div class="block">Inserts the specified element at the end of this queue.</div> <dl> @@ -558,7 +558,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>push</h4> -<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.90">push</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure, +<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.112">push</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure, boolean addFront, boolean notify)</pre> </li> @@ -569,7 +569,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>dequeue</h4> -<pre>protected abstract <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/AbstractProcedureScheduler.html#line.110">dequeue</a>()</pre> +<pre>protected abstract <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/AbstractProcedureScheduler.html#line.132">dequeue</a>()</pre> <div class="block">Fetch one Procedure from the queue NOTE: this method is called with the sched lock held.</div> <dl> @@ -584,7 +584,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>poll</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/AbstractProcedureScheduler.html#line.113">poll</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/AbstractProcedureScheduler.html#line.135">poll</a>()</pre> <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#poll--">ProcedureScheduler</a></code></span></div> <div class="block">Fetch one Procedure from the queue</div> <dl> @@ -601,7 +601,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>poll</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/AbstractProcedureScheduler.html#line.118">poll</a>(long timeout, +<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/AbstractProcedureScheduler.html#line.140">poll</a>(long timeout, <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a> unit)</pre> <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#poll-long-java.util.concurrent.TimeUnit-">ProcedureScheduler</a></code></span></div> <div class="block">Fetch one Procedure from the queue</div> @@ -622,7 +622,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>poll</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/AbstractProcedureScheduler.html#line.123">poll</a>(long nanos)</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/AbstractProcedureScheduler.html#line.145">poll</a>(long nanos)</pre> </li> </ul> <a name="queueSize--"> @@ -631,7 +631,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>queueSize</h4> -<pre>protected abstract int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.166">queueSize</a>()</pre> +<pre>protected abstract int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.188">queueSize</a>()</pre> <div class="block">Returns the number of elements in this queue. NOTE: this method is called with the sched lock held.</div> <dl> @@ -646,7 +646,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>queueHasRunnables</h4> -<pre>protected abstract boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.173">queueHasRunnables</a>()</pre> +<pre>protected abstract boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.195">queueHasRunnables</a>()</pre> <div class="block">Returns true if there are procedures available to process. NOTE: this method is called with the sched lock held.</div> <dl> @@ -661,7 +661,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>size</h4> -<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.176">size</a>()</pre> +<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.198">size</a>()</pre> <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#size--">ProcedureScheduler</a></code></span></div> <div class="block">Returns the number of elements in this queue.</div> <dl> @@ -678,7 +678,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>hasRunnables</h4> -<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.186">hasRunnables</a>()</pre> +<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.208">hasRunnables</a>()</pre> <dl> <dt><span class="overrideSpecifyLabel">Specified by:</span></dt> <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#hasRunnables--">hasRunnables</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a></code></dd> @@ -693,7 +693,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>getPollCalls</h4> -<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.198">getPollCalls</a>()</pre> +<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.220">getPollCalls</a>()</pre> </li> </ul> <a name="getNullPollCalls--"> @@ -702,82 +702,21 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>getNullPollCalls</h4> -<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.202">getNullPollCalls</a>()</pre> +<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.224">getNullPollCalls</a>()</pre> </li> </ul> -<a name="waitEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-org.apache.hadoop.hbase.procedure2.Procedure-"> -<!-- --> -</a> -<ul class="blockList"> -<li class="blockList"> -<h4>waitEvent</h4> -<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.210">waitEvent</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a> event, - <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</pre> -<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#waitEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-org.apache.hadoop.hbase.procedure2.Procedure-">ProcedureScheduler</a></code></span></div> -<div class="block">Suspend the procedure if the event is not ready yet.</div> -<dl> -<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> -<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#waitEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-org.apache.hadoop.hbase.procedure2.Procedure-">waitEvent</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a></code></dd> -<dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>event</code> - the event to wait on</dd> -<dd><code>procedure</code> - the procedure waiting on the event</dd> -<dt><span class="returnLabel">Returns:</span></dt> -<dd>true if the procedure has to wait for the event to be ready, false otherwise.</dd> -</dl> -</li> -</ul> -<a name="suspendEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-"> -<!-- --> -</a> -<ul class="blockList"> -<li class="blockList"> -<h4>suspendEvent</h4> -<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.221">suspendEvent</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a> event)</pre> -<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#suspendEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-">ProcedureScheduler</a></code></span></div> -<div class="block">Mark the event as not ready. - Procedures calling waitEvent() will be suspended.</div> -<dl> -<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> -<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#suspendEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-">suspendEvent</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a></code></dd> -<dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>event</code> - the event to mark as suspended/not ready</dd> -</dl> -</li> -</ul> -<a name="wakeEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-"> -<!-- --> -</a> -<ul class="blockList"> -<li class="blockList"> -<h4>wakeEvent</h4> -<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.232">wakeEvent</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a> event)</pre> -<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#wakeEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-">ProcedureScheduler</a></code></span></div> -<div class="block">Wake every procedure waiting for the specified event - (By design each event has only one "wake" caller)</div> -<dl> -<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> -<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#wakeEvent-org.apache.hadoop.hbase.procedure2.ProcedureEvent-">wakeEvent</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a></code></dd> -<dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>event</code> - the event to wait</dd> -</dl> -</li> -</ul> -<a name="wakeEvents-int-org.apache.hadoop.hbase.procedure2.ProcedureEvent...-"> +<a name="wakeEvents-org.apache.hadoop.hbase.procedure2.ProcedureEvent:A-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>wakeEvents</h4> -<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.237">wakeEvents</a>(int count, - <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>... events)</pre> -<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#wakeEvents-int-org.apache.hadoop.hbase.procedure2.ProcedureEvent...-">ProcedureScheduler</a></code></span></div> -<div class="block">Wake every procedure waiting for the specified events. - (By design each event has only one "wake" caller)</div> +<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.238">wakeEvents</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>[] events)</pre> +<div class="block">Wake up all of the given events. + Note that we first take scheduler lock and then wakeInternal() synchronizes on the event. + Access should remain package-private. Use ProcedureEvent class to wake/suspend events.</div> <dl> -<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> -<dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html#wakeEvents-int-org.apache.hadoop.hbase.procedure2.ProcedureEvent...-">wakeEvents</a></code> in interface <code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureScheduler.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureScheduler</a></code></dd> <dt><span class="paramLabel">Parameters:</span></dt> -<dd><code>count</code> - the number of events in the array to wake</dd> <dd><code>events</code> - the list of events to wake</dd> </dl> </li> @@ -788,7 +727,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>wakeWaitingProcedures</h4> -<pre>protected int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.273">wakeWaitingProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a> waitQueue)</pre> +<pre>protected int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.256">wakeWaitingProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a> waitQueue)</pre> <div class="block">Wakes up given waiting procedures by pushing them back into scheduler queues.</div> <dl> <dt><span class="returnLabel">Returns:</span></dt> @@ -802,7 +741,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>waitProcedure</h4> -<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.284">waitProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a> waitQueue, +<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.266">waitProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a> waitQueue, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> proc)</pre> </li> </ul> @@ -812,7 +751,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>wakeProcedure</h4> -<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.288">wakeProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</pre> +<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.270">wakeProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a> procedure)</pre> </li> </ul> <a name="schedLock--"> @@ -821,7 +760,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>schedLock</h4> -<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.296">schedLock</a>()</pre> +<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.279">schedLock</a>()</pre> </li> </ul> <a name="schedUnlock--"> @@ -830,7 +769,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockList"> <li class="blockList"> <h4>schedUnlock</h4> -<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.300">schedUnlock</a>()</pre> +<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.283">schedUnlock</a>()</pre> </li> </ul> <a name="wakePollIfNeeded-int-"> @@ -839,7 +778,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureS <ul class="blockListLast"> <li class="blockList"> <h4>wakePollIfNeeded</h4> -<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.304">wakePollIfNeeded</a>(int waitingCount)</pre> +<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.287">wakePollIfNeeded</a>(int waitingCount)</pre> </li> </ul> </li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/b9722a17/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html ---------------------------------------------------------------------- diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html index 5c7a125..db686b6 100644 --- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html +++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html @@ -18,8 +18,8 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; -var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; @@ -114,11 +114,10 @@ var activeTableTab = "activeTableTab"; <hr> <br> <pre>@InterfaceAudience.Private -public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.29">ProcedureEvent</a><T> +public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.32">ProcedureEvent</a><T> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> <div class="block">Basic ProcedureEvent that contains an "object", which can be a description or a reference to the - resource to wait on, and a queue for suspended procedures. - Access to suspended procedures queue is 'synchronized' on the event itself.</div> + resource to wait on, and a queue for suspended procedures.</div> </li> </ul> </div> @@ -138,14 +137,18 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? <th class="colLast" scope="col">Field and Description</th> </tr> <tr class="altColor"> +<td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#LOG">LOG</a></span></code> </td> +</tr> +<tr class="rowColor"> <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="type parameter in ProcedureEvent">T</a></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#object">object</a></span></code> </td> </tr> -<tr class="rowColor"> +<tr class="altColor"> <td class="colFirst"><code>private boolean</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#ready">ready</a></span></code> </td> </tr> -<tr class="altColor"> +<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/ProcedureEvent.html#suspendedProcedures">suspendedProcedures</a></span></code> </td> </tr> @@ -176,27 +179,57 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? </a> <h3>Method Summary</h3> <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> -<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr id="i0" class="altColor"> <td class="colFirst"><code><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/ProcedureEvent.html#getSuspendedProcedures--">getSuspendedProcedures</a></span>()</code> </td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#getSuspendedProcedures--">getSuspendedProcedures</a></span>()</code> +<div class="block">Access to suspendedProcedures is 'synchronized' on this object, but it's fine to return it + here for tests.</div> +</td> </tr> <tr id="i1" class="rowColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#isReady--">isReady</a></span>()</code> </td> </tr> <tr id="i2" class="altColor"> -<td class="colFirst"><code>(package private) void</code></td> -<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#setReady-boolean-">setReady</a></span>(boolean isReady)</code> </td> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#suspend--">suspend</a></span>()</code> +<div class="block">Mark the event as not ready.</div> +</td> </tr> <tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#suspendIfNotReady-org.apache.hadoop.hbase.procedure2.Procedure-">suspendIfNotReady</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="i4" class="altColor"> <td class="colFirst"><code><a href="http://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/ProcedureEvent.html#toString--">toString</a></span>()</code> </td> </tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#wake-org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler-">wake</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a> procedureScheduler)</code> +<div class="block">Wakes up the suspended procedures by pushing them back into scheduler queues and sets the + event as ready.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#wakeEvents-org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler-org.apache.hadoop.hbase.procedure2.ProcedureEvent...-">wakeEvents</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a> scheduler, + <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>... events)</code> +<div class="block">Wakes up all the given events and puts the procedures waiting on them back into + ProcedureScheduler queues.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>(package private) void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#wakeInternal-org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler-">wakeInternal</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a> procedureScheduler)</code> +<div class="block">Only to be used by ProcedureScheduler implementations.</div> +</td> +</tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> @@ -219,13 +252,22 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? <!-- --> </a> <h3>Field Detail</h3> +<a name="LOG"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOG</h4> +<pre>private static final org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.33">LOG</a></pre> +</li> +</ul> <a name="object"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>object</h4> -<pre>private final <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="type parameter in ProcedureEvent">T</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.30">object</a></pre> +<pre>private final <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="type parameter in ProcedureEvent">T</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.35">object</a></pre> </li> </ul> <a name="ready"> @@ -234,7 +276,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? <ul class="blockList"> <li class="blockList"> <h4>ready</h4> -<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.31">ready</a></pre> +<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.36">ready</a></pre> </li> </ul> <a name="suspendedProcedures"> @@ -243,7 +285,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? <ul class="blockListLast"> <li class="blockList"> <h4>suspendedProcedures</h4> -<pre>private <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/ProcedureEvent.html#line.32">suspendedProcedures</a></pre> +<pre>private <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/ProcedureEvent.html#line.37">suspendedProcedures</a></pre> </li> </ul> </li> @@ -262,7 +304,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? <ul class="blockListLast"> <li class="blockList"> <h4>ProcedureEvent</h4> -<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.34">ProcedureEvent</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="type parameter in ProcedureEvent">T</a> object)</pre> +<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.39">ProcedureEvent</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="type parameter in ProcedureEvent">T</a> object)</pre> </li> </ul> </li> @@ -279,16 +321,74 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? <ul class="blockList"> <li class="blockList"> <h4>isReady</h4> -<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.38">isReady</a>()</pre> +<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.43">isReady</a>()</pre> +</li> +</ul> +<a name="suspendIfNotReady-org.apache.hadoop.hbase.procedure2.Procedure-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>suspendIfNotReady</h4> +<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.50">suspendIfNotReady</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 event is not ready and adds procedure to suspended queue, else returns false.</dd> +</dl> +</li> +</ul> +<a name="suspend--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>suspend</h4> +<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.58">suspend</a>()</pre> +<div class="block">Mark the event as not ready.</div> +</li> +</ul> +<a name="wake-org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wake</h4> +<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.70">wake</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a> procedureScheduler)</pre> +<div class="block">Wakes up the suspended procedures by pushing them back into scheduler queues and sets the + event as ready. + See <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#wakeInternal-org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler-"><code>wakeInternal(AbstractProcedureScheduler)</code></a> for why this is not synchronized.</div> +</li> +</ul> +<a name="wakeEvents-org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler-org.apache.hadoop.hbase.procedure2.ProcedureEvent...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wakeEvents</h4> +<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.78">wakeEvents</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a> scheduler, + <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>... events)</pre> +<div class="block">Wakes up all the given events and puts the procedures waiting on them back into + ProcedureScheduler queues.</div> </li> </ul> -<a name="setReady-boolean-"> +<a name="wakeInternal-org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>setReady</h4> -<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.42">setReady</a>(boolean isReady)</pre> +<h4>wakeInternal</h4> +<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.95">wakeInternal</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a> procedureScheduler)</pre> +<div class="block">Only to be used by ProcedureScheduler implementations. + Reason: To wake up multiple events, locking sequence is + schedLock --> synchronized (event) + To wake up an event, both schedLock() and synchronized(event) are required. + The order is schedLock() --> synchronized(event) because when waking up multiple events + simultaneously, we keep the scheduler locked until all procedures suspended on these events + have been added back to the queue (Maybe it's not required? Evaluate!) + To avoid deadlocks, we want to keep the locking order same even when waking up single event. + That's why, <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#wake-org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler-"><code>wake(AbstractProcedureScheduler)</code></a> above uses the same code path as used + when waking up multiple events. + Access should remain package-private.</div> </li> </ul> <a name="getSuspendedProcedures--"> @@ -297,7 +397,9 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? <ul class="blockList"> <li class="blockList"> <h4>getSuspendedProcedures</h4> -<pre>public <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/ProcedureEvent.html#line.46">getSuspendedProcedures</a>()</pre> +<pre>public <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/ProcedureEvent.html#line.115">getSuspendedProcedures</a>()</pre> +<div class="block">Access to suspendedProcedures is 'synchronized' on this object, but it's fine to return it + here for tests.</div> </li> </ul> <a name="toString--"> @@ -306,7 +408,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html? <ul class="blockListLast"> <li class="blockList"> <h4>toString</h4> -<pre>public <a href="http://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/ProcedureEvent.html#line.51">toString</a>()</pre> +<pre>public <a href="http://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/ProcedureEvent.html#line.120">toString</a>()</pre> <dl> <dt><span class="overrideSpecifyLabel">Overrides:</span></dt> <dd><code><a href="http://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="http://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>
