You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2018/05/30 21:22:34 UTC

[03/10] mesos-site git commit: Updated the website built from mesos SHA: d95f984.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/0ed17e75/content/api/latest/c++/metrics_2timer_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/metrics_2timer_8hpp_source.html b/content/api/latest/c++/metrics_2timer_8hpp_source.html
index e224b1a..33b2891 100644
--- a/content/api/latest/c++/metrics_2timer_8hpp_source.html
+++ b/content/api/latest/c++/metrics_2timer_8hpp_source.html
@@ -62,7 +62,7 @@
 <div class="ttc" id="classprocess_1_1metrics_1_1Timer_html_add113450a55bb835137f84701f981fcc"><div class="ttname"><a href="classprocess_1_1metrics_1_1Timer.html#add113450a55bb835137f84701f981fcc">process::metrics::Timer::stop</a></div><div class="ttdeci">T stop()</div><div class="ttdef"><b>Definition:</b> timer.hpp:69</div></div>
 <div class="ttc" id="classprocess_1_1metrics_1_1Timer_html_a434e22286a5dbc8ec2b8501499d159c4"><div class="ttname"><a href="classprocess_1_1metrics_1_1Timer.html#a434e22286a5dbc8ec2b8501499d159c4">process::metrics::Timer::time</a></div><div class="ttdeci">Future&lt; U &gt; time(const Future&lt; U &gt; &amp;future)</div><div class="ttdef"><b>Definition:</b> timer.hpp:92</div></div>
 <div class="ttc" id="duration_8hpp_html"><div class="ttname"><a href="duration_8hpp.html">duration.hpp</a></div></div>
-<div class="ttc" id="classprocess_1_1Future_html_a71bde220aed3c725cef2040f63adf42a"><div class="ttname"><a href="classprocess_1_1Future.html#a71bde220aed3c725cef2040f63adf42a">process::Future::onAny</a></div><div class="ttdeci">const Future&lt; T &gt; &amp; onAny(AnyCallback &amp;&amp;callback) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1454</div></div>
+<div class="ttc" id="classprocess_1_1Future_html_a71bde220aed3c725cef2040f63adf42a"><div class="ttname"><a href="classprocess_1_1Future.html#a71bde220aed3c725cef2040f63adf42a">process::Future::onAny</a></div><div class="ttdeci">const Future&lt; T &gt; &amp; onAny(AnyCallback &amp;&amp;callback) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1445</div></div>
 <div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
 <div class="ttc" id="classprocess_1_1Time_html"><div class="ttname"><a href="classprocess_1_1Time.html">process::Time</a></div><div class="ttdef"><b>Definition:</b> time.hpp:23</div></div>
 <div class="ttc" id="classprocess_1_1metrics_1_1Timer_html_ad51d7b31657206de70395db50624caf9"><div class="ttname"><a href="classprocess_1_1metrics_1_1Timer.html#ad51d7b31657206de70395db50624caf9">process::metrics::Timer::Timer</a></div><div class="ttdeci">Timer(const std::string &amp;name, const Option&lt; Duration &gt; &amp;window=None())</div><div class="ttdef"><b>Definition:</b> timer.hpp:41</div></div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/0ed17e75/content/api/latest/c++/namespacemembers_d.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_d.html b/content/api/latest/c++/namespacemembers_d.html
index ee9a6b7..b88ab99 100644
--- a/content/api/latest/c++/namespacemembers_d.html
+++ b/content/api/latest/c++/namespacemembers_d.html
@@ -317,7 +317,7 @@
 : <a class="el" href="namespacenvml.html#a69bb6da725915c2c3b47974208580efc">nvml</a>
 </li>
 <li>devolve()
-: <a class="el" href="namespacemesos_1_1internal.html#adefdf226033e2752db0c416bb0fab15b">mesos::internal</a>
+: <a class="el" href="namespacemesos_1_1internal.html#af33eaee08332e8f34b3e66c03aa154b8">mesos::internal</a>
 </li>
 <li>diff()
 : <a class="el" href="namespacesvn.html#af97eefc14cbcf6f81e217c6a9215cea9">svn</a>
@@ -329,20 +329,20 @@
 : <a class="el" href="namespaceprocess.html#af8d01fbc04e5157d594146e377243573a22a3dd39a9c94dd501273e0a76806c41">process</a>
 </li>
 <li>discard()
-: <a class="el" href="namespaceprocess.html#adc504b79a0e7ec7c4caa088a937d4feb">process</a>
+: <a class="el" href="namespaceprocess.html#a21733add4910bb1b6658c136d557db4f">process</a>
 , <a class="el" href="namespaceprocess_1_1internal.html#a58d2ee086b173d21a4fc0550f843dd2e">process::internal</a>
 </li>
 <li>discarded()
-: <a class="el" href="namespaceprocess_1_1internal.html#aa03406abec646ff3df058f9e55749c11">process::internal</a>
+: <a class="el" href="namespaceprocess_1_1internal.html#a7fc7a125c0e895df1fcb67678a8b90d6">process::internal</a>
 </li>
 <li>discardPromises()
-: <a class="el" href="namespaceprocess.html#afe0ad6b5dde08973b75bb8b6eb3a92fc">process</a>
+: <a class="el" href="namespaceprocess.html#afb9858d1610b80846d170d49b5abd03a">process</a>
 </li>
 <li>DISK_WATCH_INTERVAL
 : <a class="el" href="namespacemesos_1_1internal_1_1slave.html#a30ce2dea60e8214b2c6d85ff62320726">mesos::internal::slave</a>
 </li>
 <li>dispatch()
-: <a class="el" href="namespaceprocess.html#a922c9e2500a62c2a9e5eabc02fbc4677">process</a>
+: <a class="el" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process</a>
 , <a class="el" href="namespaceprocess_1_1internal.html#ac34bccdf47fcfa46cedf2a03771eb221">process::internal</a>
 </li>
 <li>DOCKER_FORCE_KILL_TIMEOUT
@@ -421,7 +421,7 @@
 : <a class="el" href="namespacemesos_1_1internal_1_1fs.html#ac0a24631b546a6be11d56493e089a599">mesos::internal::fs</a>
 </li>
 <li>dup()
-: <a class="el" href="namespaceos.html#a622be738276833e635a7db06cff31a35">os</a>
+: <a class="el" href="namespaceos.html#ac6a52f61ab8f31856757007b4be7f5e6">os</a>
 </li>
 <li>dup2()
 : <a class="el" href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">os</a>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/0ed17e75/content/api/latest/c++/namespacemembers_func_d.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_func_d.html b/content/api/latest/c++/namespacemembers_func_d.html
index eadf821..f9bec01 100644
--- a/content/api/latest/c++/namespacemembers_func_d.html
+++ b/content/api/latest/c++/namespacemembers_func_d.html
@@ -169,7 +169,7 @@
 : <a class="el" href="namespacenvml.html#a69bb6da725915c2c3b47974208580efc">nvml</a>
 </li>
 <li>devolve()
-: <a class="el" href="namespacemesos_1_1internal.html#af33eaee08332e8f34b3e66c03aa154b8">mesos::internal</a>
+: <a class="el" href="namespacemesos_1_1internal.html#a840d16142c39cb98e48a44012a91f9ab">mesos::internal</a>
 </li>
 <li>diff()
 : <a class="el" href="namespacesvn.html#af97eefc14cbcf6f81e217c6a9215cea9">svn</a>
@@ -178,17 +178,17 @@
 : <a class="el" href="namespacecgroups_1_1memory_1_1oom_1_1killer.html#a12bd1e391ba4dacf25a4d18e663829c6">cgroups::memory::oom::killer</a>
 </li>
 <li>discard()
-: <a class="el" href="namespaceprocess.html#adc504b79a0e7ec7c4caa088a937d4feb">process</a>
+: <a class="el" href="namespaceprocess.html#a21733add4910bb1b6658c136d557db4f">process</a>
 , <a class="el" href="namespaceprocess_1_1internal.html#a58d2ee086b173d21a4fc0550f843dd2e">process::internal</a>
 </li>
 <li>discarded()
 : <a class="el" href="namespaceprocess_1_1internal.html#aa03406abec646ff3df058f9e55749c11">process::internal</a>
 </li>
 <li>discardPromises()
-: <a class="el" href="namespaceprocess.html#afb9858d1610b80846d170d49b5abd03a">process</a>
+: <a class="el" href="namespaceprocess.html#afe0ad6b5dde08973b75bb8b6eb3a92fc">process</a>
 </li>
 <li>dispatch()
-: <a class="el" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process</a>
+: <a class="el" href="namespaceprocess.html#af7014316fba833245dc95ccbb0353485">process</a>
 , <a class="el" href="namespaceprocess_1_1internal.html#ac34bccdf47fcfa46cedf2a03771eb221">process::internal</a>
 </li>
 <li>downgradeResource()

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/0ed17e75/content/api/latest/c++/namespaceprocess.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespaceprocess.html b/content/api/latest/c++/namespaceprocess.html
index b460d35..1a88875 100644
--- a/content/api/latest/c++/namespaceprocess.html
+++ b/content/api/latest/c++/namespaceprocess.html
@@ -343,12 +343,9 @@ Functions</h2></td></tr>
 <tr class="memitem:ac2bef42241b51b0715b826d950e22d6a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 <tr class="memitem:ac2bef42241b51b0715b826d950e22d6a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt; <a class="el" href="classprocess_1_1Future.html">Future</a>&lt; T &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#ac2bef42241b51b0715b826d950e22d6a">select</a> (const std::set&lt; <a class="el" href="classprocess_1_1Future.html">Future</a>&lt; T &gt;&gt; &amp;futures)</td></tr>
 <tr class="separator:ac2bef42241b51b0715b826d950e22d6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adc504b79a0e7ec7c4caa088a937d4feb"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:adc504b79a0e7ec7c4caa088a937d4feb"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#adc504b79a0e7ec7c4caa088a937d4feb">discard</a> (const std::set&lt; <a class="el" href="classprocess_1_1Future.html">Future</a>&lt; T &gt;&gt; &amp;futures)</td></tr>
-<tr class="separator:adc504b79a0e7ec7c4caa088a937d4feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abf27e0f0abac14fb7c7a0a9bc73d1d98"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:abf27e0f0abac14fb7c7a0a9bc73d1d98"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#abf27e0f0abac14fb7c7a0a9bc73d1d98">discard</a> (const std::list&lt; <a class="el" href="classprocess_1_1Future.html">Future</a>&lt; T &gt;&gt; &amp;futures)</td></tr>
-<tr class="separator:abf27e0f0abac14fb7c7a0a9bc73d1d98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21733add4910bb1b6658c136d557db4f"><td class="memTemplParams" colspan="2">template&lt;typename Futures &gt; </td></tr>
+<tr class="memitem:a21733add4910bb1b6658c136d557db4f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a21733add4910bb1b6658c136d557db4f">discard</a> (const Futures &amp;futures)</td></tr>
+<tr class="separator:a21733add4910bb1b6658c136d557db4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1f0b8b2ea7d75c3b9d8d4781689f731b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 <tr class="memitem:a1f0b8b2ea7d75c3b9d8d4781689f731b"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a1f0b8b2ea7d75c3b9d8d4781689f731b">operator&lt;&lt;</a> (std::ostream &amp;stream, const <a class="el" href="classprocess_1_1Future.html">Future</a>&lt; T &gt; &amp;future)</td></tr>
 <tr class="separator:a1f0b8b2ea7d75c3b9d8d4781689f731b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -1371,34 +1368,16 @@ template&lt;typename... T&gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="adc504b79a0e7ec7c4caa088a937d4feb"></a>
+<a class="anchor" id="a21733add4910bb1b6658c136d557db4f"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename T &gt; </div>
+template&lt;typename Futures &gt; </div>
       <table class="memname">
         <tr>
           <td class="memname">void process::discard </td>
           <td>(</td>
-          <td class="paramtype">const std::set&lt; <a class="el" href="classprocess_1_1Future.html">Future</a>&lt; T &gt;&gt; &amp;&#160;</td>
-          <td class="paramname"><em>futures</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="abf27e0f0abac14fb7c7a0a9bc73d1d98"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;typename T &gt; </div>
-      <table class="memname">
-        <tr>
-          <td class="memname">void process::discard </td>
-          <td>(</td>
-          <td class="paramtype">const std::list&lt; <a class="el" href="classprocess_1_1Future.html">Future</a>&lt; T &gt;&gt; &amp;&#160;</td>
+          <td class="paramtype">const Futures &amp;&#160;</td>
           <td class="paramname"><em>futures</em></td><td>)</td>
           <td></td>
         </tr>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/0ed17e75/content/api/latest/c++/protobuf__utils_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/protobuf__utils_8hpp_source.html b/content/api/latest/c++/protobuf__utils_8hpp_source.html
index cfc20ba..e1fd786 100644
--- a/content/api/latest/c++/protobuf__utils_8hpp_source.html
+++ b/content/api/latest/c++/protobuf__utils_8hpp_source.html
@@ -59,7 +59,7 @@
 <div class="ttc" id="namespacemesos_1_1internal_1_1protobuf_html_aaad34fc9798891303cecdba77c1e473c"><div class="ttname"><a href="namespacemesos_1_1internal_1_1protobuf.html#aaad34fc9798891303cecdba77c1e473c">mesos::internal::protobuf::getConsumedResources</a></div><div class="ttdeci">Try&lt; Resources &gt; getConsumedResources(const Offer::Operation &amp;operation)</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1protobuf_html_a1f16c3cd383827f0c86f6dab2ae959dd"><div class="ttname"><a href="namespacemesos_1_1internal_1_1protobuf.html#a1f16c3cd383827f0c86f6dab2ae959dd">mesos::internal::protobuf::getTaskHealth</a></div><div class="ttdeci">Option&lt; bool &gt; getTaskHealth(const Task &amp;task)</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event_html_a57627d6cffb087c80f8139ab67c343f2"><div class="ttname"><a href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#a57627d6cffb087c80f8139ab67c343f2">mesos::internal::protobuf::master::event::createFrameworkAdded</a></div><div class="ttdeci">mesos::master::Event createFrameworkAdded(const mesos::internal::master::Framework &amp;framework)</div></div>
-<div class="ttc" id="namespaceprocess_html_a1f0b8b2ea7d75c3b9d8d4781689f731b"><div class="ttname"><a href="namespaceprocess.html#a1f0b8b2ea7d75c3b9d8d4781689f731b">process::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;stream, const Future&lt; T &gt; &amp;future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1838</div></div>
+<div class="ttc" id="namespaceprocess_html_a1f0b8b2ea7d75c3b9d8d4781689f731b"><div class="ttname"><a href="namespaceprocess.html#a1f0b8b2ea7d75c3b9d8d4781689f731b">process::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;stream, const Future&lt; T &gt; &amp;future)</div><div class="ttdef"><b>Definition:</b> future.hpp:1829</div></div>
 <div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:28</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1protobuf_html_a6a6794c6ee6ec11bcd78fcb625faebe1"><div class="ttname"><a href="namespacemesos_1_1internal_1_1protobuf.html#a6a6794c6ee6ec11bcd78fcb625faebe1">mesos::internal::protobuf::stripAllocationInfo</a></div><div class="ttdeci">void stripAllocationInfo(Offer::Operation *operation)</div></div>
 <div class="ttc" id="namespaceprocess_html_aecbdc1b686bf195f0a1ae0cc891b5f7c"><div class="ttname"><a href="namespaceprocess.html#aecbdc1b686bf195f0a1ae0cc891b5f7c">process::operator==</a></div><div class="ttdeci">bool operator==(const std::string &amp;s, const UPID::ID &amp;id)</div><div class="ttdef"><b>Definition:</b> pid.hpp:216</div></div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/0ed17e75/content/api/latest/c++/queue_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/queue_8hpp_source.html b/content/api/latest/c++/queue_8hpp_source.html
index f28abc7..2e8dd65 100644
--- a/content/api/latest/c++/queue_8hpp_source.html
+++ b/content/api/latest/c++/queue_8hpp_source.html
@@ -53,11 +53,11 @@
 </div><!--header-->
 <div class="contents">
 <a href="queue_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">//     http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">//</spa
 n></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="lin
 e"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#ifndef __PROCESS_QUEUE_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#define __PROCESS_QUEUE_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;deque&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;queue&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>
 &#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="future_8hpp.html">process/future.hpp</a>&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="owned_8hpp.html">process/owned.hpp</a>&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00027"></
 a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classprocess_1_1Queue.html">   29</a></span>&#160;<span class="keyword">class </span><a class="code" href="classprocess_1_1Queue.html">Queue</a></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;{</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classprocess_1_1Queue.html#a674a915e518d5bb71bcca95fb593be6c">   32</a></span>&#160;  <a class="code" href="classprocess_1_1Queue.html#a674a915e518d5bb71bcca95fb593be6c">Queue</a>() : data(new Data()) {}</div><div class="line"><a name="l00033"></a><span class="l
 ineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  <span class="comment">// TODO(bmahler): Take a T&amp;&amp; here instead.</span></div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classprocess_1_1Queue.html#a9f8aa372271f673f283797728afebb08">   35</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1Queue.html#a9f8aa372271f673f283797728afebb08">put</a>(<span class="keyword">const</span> T&amp; t)</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;  {</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="comment">// NOTE: We need to grab the promise &#39;date-&gt;promises.front()&#39; but</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="comment">// set it outside of the critical section because setting it might</s
 pan></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="comment">// trigger callbacks that try to reacquire the lock.</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <a class="code" href="classprocess_1_1Owned.html">Owned&lt;Promise&lt;T&gt;</a>&gt; <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keyword">synchronized</span> (data-&gt;lock) {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;      <span class="keywordflow">if</span> (data-&gt;promises.empty()) {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        data-&gt;elements.push(t);</div><div class="line"><a n
 ame="l00045"></a><span class="lineno">   45</span>&#160;      } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        promise = data-&gt;promises.front();</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        data-&gt;promises.pop_front();</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;      }</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">if</span> (promise.<a class="code" href="classprocess_1_1Owned.html#a2f64ec02eea2321e25611175edf776aa">get</a>() != <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;      promise-&gt;set(t);</
 div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    }</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;  }</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classprocess_1_1Queue.html#a89074ab9ac5928a41cec8a86ceec2a5e">   56</a></span>&#160;  <a class="code" href="classprocess_1_1Future.html">Future&lt;T&gt;</a> <span class="keyword">get</span>()</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  {</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="classprocess_1_1Future.html">Future&lt;T&gt;</a> future;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keyword">synchronized<
 /span> (data-&gt;lock) {</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;      <span class="keywordflow">if</span> (data-&gt;elements.empty()) {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        data-&gt;promises.emplace_back(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise&lt;T&gt;</a>());</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        future = data-&gt;promises.back()-&gt;future();</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;      } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        T t = std::move(data-&gt;elements.front());</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        data-&gt;elements.pop();</div><div class="line"><a name="l00067"></a><span class="lineno"
 >   67</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1Future.html">Future&lt;T&gt;</a>(std::move(t));</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;      }</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    }</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="comment">// If there were no items available, we set up a discard</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="comment">// handler. This is done here to minimize the amount of</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">// work done within the critical section above.</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74<
 /span>&#160;    <span class="keyword">auto</span> weak_data = std::weak_ptr&lt;Data&gt;(data);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    future.<a class="code" href="classprocess_1_1Future.html#a1b80bf321358be44880d9c6bae5d9a2d">onDiscard</a>([weak_data, future]() {</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;      <span class="keyword">auto</span> data = weak_data.lock();</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;      <span class="keywordflow">if</span> (!data) {</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;      }</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div c
 lass="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;      <span class="keyword">synchronized</span> (data-&gt;lock) {</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = data-&gt;promises.begin();</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;             it != data-&gt;promises.end();</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;             ++it) {</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;          <span class="keywordflow">if</span> ((*it)-&gt;future() == future) {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            (*it)-&gt;<a class="code" href="classprocess_1_1Future.html#a4012f3faa6191fc13874dca62c14ced0">discard</a>();</div><div class="line"><a name="l00088"></a><span class="lineno"> 
   88</span>&#160;            data-&gt;promises.erase(it);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;          }</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        }</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;      }</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    });</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordflow">return</span> future;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;  }</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a>
 <span class="lineno"><a class="line" href="classprocess_1_1Queue.html#a4d055c0e16b5078d60f4395223ad47ec">   98</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="classprocess_1_1Queue.html#a4d055c0e16b5078d60f4395223ad47ec">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="keyword">  </span>{</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keyword">synchronized</span> (data-&gt;lock) {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;      <span class="keywordflow">return</span> data-&gt;elements.size();</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    }</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  }</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="lin
 e"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  {</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    Data() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    ~Data()</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;      <span class="comment">// TODO(benh): Fail promises?</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    }</div><div class="line"><a name="l00114">
 </a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="comment">// Rather than use a process to serialize access to the queue&#39;s</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment">// internal data we use a &#39;std::atomic_flag&#39;.</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    std::atomic_flag lock = ATOMIC_FLAG_INIT;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">// Represents &quot;waiters&quot; for elements from the queue.</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    std::deque&lt;Owned&lt;Promise&lt;T&gt;&gt;&gt; promises;</div><div class="line"><a name="l00121"></a><span class="linen
 o">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="comment">// Represents elements already put in the queue.</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    std::queue&lt;T&gt; elements;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  };</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;  std::shared_ptr&lt;Data&gt; data;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;};</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;} <span class="comment">// namespace process {</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div c
 lass="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor">#endif // __PROCESS_QUEUE_HPP__</span></div><div class="ttc" id="synchronized_8hpp_html"><div class="ttname"><a href="synchronized_8hpp.html">synchronized.hpp</a></div></div>
-<div class="ttc" id="classprocess_1_1Future_html_a1b80bf321358be44880d9c6bae5d9a2d"><div class="ttname"><a href="classprocess_1_1Future.html#a1b80bf321358be44880d9c6bae5d9a2d">process::Future::onDiscard</a></div><div class="ttdeci">const Future&lt; T &gt; &amp; onDiscard(DiscardCallback &amp;&amp;callback) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1366</div></div>
+<div class="ttc" id="classprocess_1_1Future_html_a1b80bf321358be44880d9c6bae5d9a2d"><div class="ttname"><a href="classprocess_1_1Future.html#a1b80bf321358be44880d9c6bae5d9a2d">process::Future::onDiscard</a></div><div class="ttdeci">const Future&lt; T &gt; &amp; onDiscard(DiscardCallback &amp;&amp;callback) const </div><div class="ttdef"><b>Definition:</b> future.hpp:1357</div></div>
 <div class="ttc" id="classprocess_1_1Queue_html_a674a915e518d5bb71bcca95fb593be6c"><div class="ttname"><a href="classprocess_1_1Queue.html#a674a915e518d5bb71bcca95fb593be6c">process::Queue::Queue</a></div><div class="ttdeci">Queue()</div><div class="ttdef"><b>Definition:</b> queue.hpp:32</div></div>
 <div class="ttc" id="classprocess_1_1Queue_html_a9f8aa372271f673f283797728afebb08"><div class="ttname"><a href="classprocess_1_1Queue.html#a9f8aa372271f673f283797728afebb08">process::Queue::put</a></div><div class="ttdeci">void put(const T &amp;t)</div><div class="ttdef"><b>Definition:</b> queue.hpp:35</div></div>
 <div class="ttc" id="classprocess_1_1Owned_html_a2f64ec02eea2321e25611175edf776aa"><div class="ttname"><a href="classprocess_1_1Owned.html#a2f64ec02eea2321e25611175edf776aa">process::Owned::get</a></div><div class="ttdeci">T * get() const </div><div class="ttdef"><b>Definition:</b> owned.hpp:117</div></div>
-<div class="ttc" id="classprocess_1_1Future_html_a4012f3faa6191fc13874dca62c14ced0"><div class="ttname"><a href="classprocess_1_1Future.html#a4012f3faa6191fc13874dca62c14ced0">process::Future::discard</a></div><div class="ttdeci">bool discard()</div><div class="ttdef"><b>Definition:</b> future.hpp:1169</div></div>
+<div class="ttc" id="classprocess_1_1Future_html_a4012f3faa6191fc13874dca62c14ced0"><div class="ttname"><a href="classprocess_1_1Future.html#a4012f3faa6191fc13874dca62c14ced0">process::Future::discard</a></div><div class="ttdeci">bool discard()</div><div class="ttdef"><b>Definition:</b> future.hpp:1160</div></div>
 <div class="ttc" id="classprocess_1_1Promise_html"><div class="ttname"><a href="classprocess_1_1Promise.html">process::Promise</a></div><div class="ttdef"><b>Definition:</b> future.hpp:74</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1log_1_1protocol_html_a3b1f8bd7b18c51af9d1f58842950b545"><div class="ttname"><a href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">mesos::internal::log::protocol::promise</a></div><div class="ttdeci">Protocol&lt; PromiseRequest, PromiseResponse &gt; promise</div></div>
 <div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>