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>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;&nbsp;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>&nbsp;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>&nbsp;procedure,
        boolean&nbsp;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>&nbsp;</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>&nbsp;</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>&nbsp;</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&nbsp;nanos)</code>&nbsp;</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&nbsp;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>&nbsp;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>&nbsp;procedure,
     boolean&nbsp;addFront,
     boolean&nbsp;notify)</code>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;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>&nbsp;event,
-         <a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;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>&nbsp;waitQueue,
              <a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</code>&nbsp;</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>&nbsp;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&nbsp;count,
-          <a 
href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>...&nbsp;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>[]&nbsp;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&nbsp;waitingCount)</code>&nbsp;</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>&nbsp;procedure)</code>&nbsp;</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>&nbsp;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&nbsp;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&nbsp;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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;boolean <a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.34">running</a></pre>
+<pre>private&nbsp;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&nbsp;long <a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.37">pollCalls</a></pre>
+<pre>private&nbsp;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&nbsp;long <a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.38">nullPollCalls</a></pre>
+<pre>private&nbsp;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&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.30">AbstractProcedureScheduler</a>()</pre>
+<pre>public&nbsp;<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&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.41">start</a>()</pre>
+<pre>public&nbsp;void&nbsp;<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:&nbsp;<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&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.51">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<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:&nbsp;<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&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.62">signalAll</a>()</pre>
+<pre>public&nbsp;void&nbsp;<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:&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;procedure,
+<pre>protected abstract&nbsp;void&nbsp;<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>&nbsp;procedure,
                                 boolean&nbsp;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&nbsp;void&nbsp;<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>&nbsp;procedure)</pre>
+<pre>public&nbsp;void&nbsp;<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>&nbsp;procedure)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<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&nbsp;void&nbsp;<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>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;&nbsp;procedureIterator)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<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>&nbsp;in
 interface&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;procedure)</pre>
+<pre>public&nbsp;void&nbsp;<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>&nbsp;procedure)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;procedure,
+<pre>protected&nbsp;void&nbsp;<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>&nbsp;procedure,
                     boolean&nbsp;addFront,
                     boolean&nbsp;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&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.110">dequeue</a>()</pre>
+<pre>protected abstract&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<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&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.113">poll</a>()</pre>
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<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:&nbsp;<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&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.118">poll</a>(long&nbsp;timeout,
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.140">poll</a>(long&nbsp;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>&nbsp;unit)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<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&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.123">poll</a>(long&nbsp;nanos)</pre>
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.145">poll</a>(long&nbsp;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&nbsp;int&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.166">queueSize</a>()</pre>
+<pre>protected abstract&nbsp;int&nbsp;<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&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.173">queueHasRunnables</a>()</pre>
+<pre>protected abstract&nbsp;boolean&nbsp;<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&nbsp;int&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.176">size</a>()</pre>
+<pre>public&nbsp;int&nbsp;<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:&nbsp;<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&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.186">hasRunnables</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<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>&nbsp;in
 interface&nbsp;<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&nbsp;long&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.198">getPollCalls</a>()</pre>
+<pre>public&nbsp;long&nbsp;<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&nbsp;long&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.202">getNullPollCalls</a>()</pre>
+<pre>public&nbsp;long&nbsp;<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&nbsp;boolean&nbsp;<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>&nbsp;event,
-                         <a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<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>&nbsp;in
 interface&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;event)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<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>&nbsp;in
 interface&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;event)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<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>&nbsp;in
 interface&nbsp;<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&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.237">wakeEvents</a>(int&nbsp;count,
-                       <a 
href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>...&nbsp;events)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from 
interface:&nbsp;<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&nbsp;<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>[]&nbsp;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>&nbsp;in
 interface&nbsp;<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&nbsp;int&nbsp;<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>&nbsp;waitQueue)</pre>
+<pre>protected&nbsp;int&nbsp;<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>&nbsp;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&nbsp;void&nbsp;<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>&nbsp;waitQueue,
+<pre>protected&nbsp;void&nbsp;<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>&nbsp;waitQueue,
                              <a 
href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;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&nbsp;void&nbsp;<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>&nbsp;procedure)</pre>
+<pre>protected&nbsp;void&nbsp;<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>&nbsp;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&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.296">schedLock</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<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&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.300">schedUnlock</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<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&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.304">wakePollIfNeeded</a>(int&nbsp;waitingCount)</pre>
+<pre>protected&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#line.287">wakePollIfNeeded</a>(int&nbsp;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>&lt;T&gt;
+public class <a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.32">ProcedureEvent</a>&lt;T&gt;
 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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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">&nbsp;</span></span><span id="t2" class="tableTab"><span><a 
href="javascript:show(2);">Instance Methods</a></span><span 
class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a 
href="javascript:show(8);">Concrete Methods</a></span><span 
class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span 
class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a 
href="javascript:show(1);">Static Methods</a></span><span 
class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a 
href="javascript:show(2);">Instance Methods</a></span><span 
class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a 
href="javascript:show(8);">Concrete Methods</a></span><span 
class="tabEnd">&nbsp;</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>&nbsp;</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>&nbsp;</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&nbsp;isReady)</code>&nbsp;</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>&nbsp;proc)</code>&nbsp;</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>&nbsp;</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>&nbsp;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>&nbsp;scheduler,
+          <a 
href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>...&nbsp;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>&nbsp;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&nbsp;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&nbsp;<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&nbsp;<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&nbsp;boolean <a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.31">ready</a></pre>
+<pre>private&nbsp;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&nbsp;<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&nbsp;<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&nbsp;<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>&nbsp;object)</pre>
+<pre>public&nbsp;<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>&nbsp;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&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.38">isReady</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<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&nbsp;boolean&nbsp;<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>&nbsp;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&nbsp;void&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;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&nbsp;void&nbsp;<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>&nbsp;scheduler,
+                              <a 
href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" 
title="class in 
org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>...&nbsp;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&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.42">setReady</a>(boolean&nbsp;isReady)</pre>
+<h4>wakeInternal</h4>
+<pre>void&nbsp;<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>&nbsp;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&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" 
title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.46">getSuspendedProcedures</a>()</pre>
+<pre>public&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureDeque.html" 
title="class in org.apache.hadoop.hbase.procedure2">ProcedureDeque</a>&nbsp;<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&nbsp;<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>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureEvent.html#line.51">toString</a>()</pre>
+<pre>public&nbsp;<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>&nbsp;<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>&nbsp;in 
class&nbsp;<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>

Reply via email to