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< U > time(const Future< U > &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< T > & onAny(AnyCallback &&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< T > & onAny(AnyCallback &&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 &name, const Option< Duration > &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<typename T > </td></tr>
<tr class="memitem:ac2bef42241b51b0715b826d950e22d6a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< <a class="el" href="classprocess_1_1Future.html">Future</a>< T > > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#ac2bef42241b51b0715b826d950e22d6a">select</a> (const std::set< <a class="el" href="classprocess_1_1Future.html">Future</a>< T >> &futures)</td></tr>
<tr class="separator:ac2bef42241b51b0715b826d950e22d6a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adc504b79a0e7ec7c4caa088a937d4feb"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:adc504b79a0e7ec7c4caa088a937d4feb"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#adc504b79a0e7ec7c4caa088a937d4feb">discard</a> (const std::set< <a class="el" href="classprocess_1_1Future.html">Future</a>< T >> &futures)</td></tr>
-<tr class="separator:adc504b79a0e7ec7c4caa088a937d4feb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abf27e0f0abac14fb7c7a0a9bc73d1d98"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:abf27e0f0abac14fb7c7a0a9bc73d1d98"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#abf27e0f0abac14fb7c7a0a9bc73d1d98">discard</a> (const std::list< <a class="el" href="classprocess_1_1Future.html">Future</a>< T >> &futures)</td></tr>
-<tr class="separator:abf27e0f0abac14fb7c7a0a9bc73d1d98"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a21733add4910bb1b6658c136d557db4f"><td class="memTemplParams" colspan="2">template<typename Futures > </td></tr>
+<tr class="memitem:a21733add4910bb1b6658c136d557db4f"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a21733add4910bb1b6658c136d557db4f">discard</a> (const Futures &futures)</td></tr>
+<tr class="separator:a21733add4910bb1b6658c136d557db4f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1f0b8b2ea7d75c3b9d8d4781689f731b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:a1f0b8b2ea7d75c3b9d8d4781689f731b"><td class="memTemplItemLeft" align="right" valign="top">std::ostream & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a1f0b8b2ea7d75c3b9d8d4781689f731b">operator<<</a> (std::ostream &stream, const <a class="el" href="classprocess_1_1Future.html">Future</a>< T > &future)</td></tr>
<tr class="separator:a1f0b8b2ea7d75c3b9d8d4781689f731b"><td class="memSeparator" colspan="2"> </td></tr>
@@ -1371,34 +1368,16 @@ template<typename... T> </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<typename T > </div>
+template<typename Futures > </div>
<table class="memname">
<tr>
<td class="memname">void process::discard </td>
<td>(</td>
- <td class="paramtype">const std::set< <a class="el" href="classprocess_1_1Future.html">Future</a>< T >> & </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<typename T > </div>
- <table class="memname">
- <tr>
- <td class="memname">void process::discard </td>
- <td>(</td>
- <td class="paramtype">const std::list< <a class="el" href="classprocess_1_1Future.html">Future</a>< T >> & </td>
+ <td class="paramtype">const Futures & </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< Resources > getConsumedResources(const Offer::Operation &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< bool > getTaskHealth(const Task &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 &framework)</div></div>
-<div class="ttc" id="namespaceprocess_html_a1f0b8b2ea7d75c3b9d8d4781689f731b"><div class="ttname"><a href="namespaceprocess.html#a1f0b8b2ea7d75c3b9d8d4781689f731b">process::operator<<</a></div><div class="ttdeci">std::ostream & operator<<(std::ostream &stream, const Future< T > &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<<</a></div><div class="ttdeci">std::ostream & operator<<(std::ostream &stream, const Future< T > &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 &s, const UPID::ID &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> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <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> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <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> <span class="comment">//</spa
n></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <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> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <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> <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> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="lin
e"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_QUEUE_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_QUEUE_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <atomic></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <deque></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>
 </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <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> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classprocess_1_1Queue.html"> 29</a></span> <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> {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <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>  <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> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="comment">// TODO(bmahler): Take a T&& 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>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1Queue.html#a9f8aa372271f673f283797728afebb08">put</a>(<span class="keyword">const</span> T& t)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="comment">// NOTE: We need to grab the promise 'date->promises.front()' but</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <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>  <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>  <a class="code" href="classprocess_1_1Owned.html">Owned<Promise<T></a>> <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> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">if</span> (data->promises.empty()) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  data->elements.push(t);</div><div class="line"><a n
ame="l00045"></a><span class="lineno"> 45</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  promise = data->promises.front();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  data->promises.pop_front();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <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>  promise->set(t);</
div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classprocess_1_1Queue.html#a89074ab9ac5928a41cec8a86ceec2a5e"> 56</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<T></a> <span class="keyword">get</span>()</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classprocess_1_1Future.html">Future<T></a> future;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">synchronized<
/span> (data->lock) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span> (data->elements.empty()) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  data->promises.emplace_back(<span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise<T></a>());</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  future = data->promises.back()->future();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  T t = std::move(data->elements.front());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  data->elements.pop();</div><div class="line"><a name="l00067"></a><span class="lineno"
> 67</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1Future.html">Future<T></a>(std::move(t));</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <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>  <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>  <span class="comment">// work done within the critical section above.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74<
/span>  <span class="keyword">auto</span> weak_data = std::weak_ptr<Data>(data);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  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>  <span class="keyword">auto</span> data = weak_data.lock();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span> (!data) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div c
lass="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = data->promises.begin();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  it != data->promises.end();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  ++it) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">if</span> ((*it)->future() == future) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  (*it)-><a class="code" href="classprocess_1_1Future.html#a4012f3faa6191fc13874dca62c14ced0">discard</a>();</div><div class="line"><a name="l00088"></a><span class="lineno">
88</span>  data->promises.erase(it);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  });</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">return</span> future;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a>
<span class="lineno"><a class="line" href="classprocess_1_1Queue.html#a4d055c0e16b5078d60f4395223ad47ec"> 98</a></span>  <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> <span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> data->elements.size();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="lin
e"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  Data() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  ~Data()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// TODO(benh): Fail promises?</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div><div class="line"><a name="l00114">
</a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// Rather than use a process to serialize access to the queue's</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">// internal data we use a 'std::atomic_flag'.</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  std::atomic_flag lock = ATOMIC_FLAG_INIT;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// Represents "waiters" for elements from the queue.</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  std::deque<Owned<Promise<T>>> promises;</div><div class="line"><a name="l00121"></a><span class="linen
o"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="comment">// Represents elements already put in the queue.</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  std::queue<T> elements;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  };</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> };</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div c
lass="line"><a name="l00131"></a><span class="lineno"> 131</span> <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< T > & onDiscard(DiscardCallback &&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< T > & onDiscard(DiscardCallback &&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 &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< PromiseRequest, PromiseResponse > promise</div></div>
<div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>