http://git-wip-us.apache.org/repos/asf/mesos-site/blob/b3c1ed81/content/api/latest/c++/windows_2os_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2os_8hpp_source.html 
b/content/api/latest/c++/windows_2os_8hpp_source.html
index e3874bb..0cf2833 100644
--- a/content/api/latest/c++/windows_2os_8hpp_source.html
+++ b/content/api/latest/c++/windows_2os_8hpp_source.html
@@ -658,361 +658,367 @@
 <div class="line"><a name="l00604"></a><span class="lineno">  
604</span>&#160;}</div>
 <div class="line"><a name="l00605"></a><span class="lineno">  
605</span>&#160;</div>
 <div class="line"><a name="l00606"></a><span class="lineno">  
606</span>&#160;<span class="comment">// `create_job` function creates a named 
job object using `name`.</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno">  
607</span>&#160;<span class="comment">// This returns the safe job handle, 
which closes the job handle</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno">  
608</span>&#160;<span class="comment">// when destructed. Because the job is 
destroyed when its last</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  
609</span>&#160;<span class="comment">// handle is closed and all associated 
processes have exited,</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno">  
610</span>&#160;<span class="comment">// a running process must be assigned to 
the created job</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  
611</span>&#160;<span class="comment">// before the returned handle is 
closed.</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a88a1637a0168d78faad2ac5b82e5cc4d">  
612</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;SharedHandle&gt;</a> <a class="code" 
href="namespaceos.html#a88a1637a0168d78faad2ac5b82e5cc4d">create_job</a>(<span 
class="keyword">const</span> std::wstring&amp; <a class="code" 
href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>)</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  
613</span>&#160;{</div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160; 
 <a class="code" href="classSharedHandle.html">SharedHandle</a> 
job_handle(</div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160; 
     ::CreateJobObjectW(</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160; 
         <span class="keyword">nullptr</span>,       <span class="comment">// 
Use a default security descriptor, and</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160; 
                        <span class="comment">// the created handle cannot be 
inherited.</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160; 
         name.data()),  <span class="comment">// The name of the 
job.</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160; 
     ::CloseHandle);</div>
-<div class="line"><a name="l00620"></a><span class="lineno">  
620</span>&#160;</div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>()
 == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160; 
       <span class="stringliteral">&quot;os::create_job: Call to 
`CreateJobObject` failed for job: &quot;</span> +</div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160; 
       <a class="code" 
href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(name));</div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160; 
 }</div>
-<div class="line"><a name="l00626"></a><span class="lineno">  
626</span>&#160;</div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160; 
 JOBOBJECT_EXTENDED_LIMIT_INFORMATION info = {};</div>
-<div class="line"><a name="l00628"></a><span class="lineno">  
628</span>&#160;</div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160; 
 <span class="comment">// The job object will be terminated when the job handle 
closes. This allows</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160; 
 <span class="comment">// the job tree to be terminated in case of errors by 
closing the handle.</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160; 
 <span class="comment">// We set this flag so that the death of the agent 
process will</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160; 
 <span class="comment">// always kill any running jobs, as the OS will close 
the remaining open</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160; 
 <span class="comment">// handles if all destructors failed to run 
(catastrophic death).</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160; 
 info.BasicLimitInformation.LimitFlags = 
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;</div>
-<div class="line"><a name="l00635"></a><span class="lineno">  
635</span>&#160;</div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160; 
 <span class="keyword">const</span> BOOL result = 
::SetInformationJobObject(</div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160; 
     job_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160; 
     JobObjectExtendedLimitInformation,</div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160; 
     &amp;info,</div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160; 
     <span class="keyword">sizeof</span>(info));</div>
-<div class="line"><a name="l00641"></a><span class="lineno">  
641</span>&#160;</div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160; 
       <span class="stringliteral">&quot;os::create_job: 
`SetInformationJobObject` failed for job: &quot;</span> +</div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160; 
       <a class="code" 
href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(name));</div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160; 
 }</div>
-<div class="line"><a name="l00647"></a><span class="lineno">  
647</span>&#160;</div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160; 
 <span class="keywordflow">return</span> job_handle;</div>
-<div class="line"><a name="l00649"></a><span class="lineno">  
649</span>&#160;}</div>
-<div class="line"><a name="l00650"></a><span class="lineno">  
650</span>&#160;</div>
-<div class="line"><a name="l00651"></a><span class="lineno">  
651</span>&#160;</div>
-<div class="line"><a name="l00652"></a><span class="lineno">  
652</span>&#160;<span class="comment">// `get_job_info` gets the job object 
information for the process group</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno">  
653</span>&#160;<span class="comment">// represented by `pid`, assuming it is 
assigned to a job object. This function</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno">  
654</span>&#160;<span class="comment">// will fail otherwise.</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno">  
655</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno">  
656</span>&#160;<span class="comment">// 
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684925(v=vs.85).aspx 
// NOLINT(whitespace/line_length)</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"><a class="line" 
href="namespaceos.html#ade6490bdde78aaec7d3ffec9396e1018">  
657</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;JOBOBJECT_BASIC_ACCOUNTING_INFORMATION&gt;</a> <a 
class="code" 
href="namespaceos.html#ade6490bdde78aaec7d3ffec9396e1018">get_job_info</a>(<a 
class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid)</div>
-<div class="line"><a name="l00658"></a><span class="lineno">  
658</span>&#160;{</div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;SharedHandle&gt;</a> job_handle = 
<a class="code" 
href="namespaceos.html#aa3da520f1619211c592b12a92639a1f9">os::open_job</a>(</div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160; 
     JOB_OBJECT_QUERY,</div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160; 
     <span class="keyword">false</span>,</div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160; 
     pid);</div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(job_handle.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160; 
 }</div>
-<div class="line"><a name="l00666"></a><span class="lineno">  
666</span>&#160;</div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160; 
 JOBOBJECT_BASIC_ACCOUNTING_INFORMATION info = {};</div>
-<div class="line"><a name="l00668"></a><span class="lineno">  
668</span>&#160;</div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160; 
 BOOL result = ::QueryInformationJobObject(</div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160; 
   job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>().<a 
class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160; 
   JobObjectBasicAccountingInformation,</div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160; 
   &amp;info,</div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160; 
   <span class="keyword">sizeof</span>(info),</div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160; 
   <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160; 
     <span class="stringliteral">&quot;os::get_job_info: call to 
`QueryInformationJobObject` failed&quot;</span>);</div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160; 
 }</div>
-<div class="line"><a name="l00679"></a><span class="lineno">  
679</span>&#160;</div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160; 
 <span class="keywordflow">return</span> info;</div>
-<div class="line"><a name="l00681"></a><span class="lineno">  
681</span>&#160;}</div>
-<div class="line"><a name="l00682"></a><span class="lineno">  
682</span>&#160;</div>
-<div class="line"><a name="l00683"></a><span class="lineno">  
683</span>&#160;</div>
-<div class="line"><a name="l00684"></a><span class="lineno">  
684</span>&#160;<span class="keyword">template</span> &lt;<span 
class="keywordtype">size_t</span> max_p<span 
class="keywordtype">id</span>s&gt;</div>
-<div class="line"><a name="l00685"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a97c21dd769e29b904e192e591ed11096">  
685</a></span>&#160;<a class="code" 
href="classResult.html">Result&lt;std::set&lt;Process&gt;</a>&gt; <a 
class="code" 
href="namespaceos.html#a97c21dd769e29b904e192e591ed11096">_get_job_processes</a>(<span
 class="keyword">const</span> <a class="code" 
href="classSharedHandle.html">SharedHandle</a>&amp; job_handle) {</div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160; 
 <span class="comment">// This is a statically allocated 
`JOBOBJECT_BASIC_PROCESS_ID_LIST`. We lie to</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160; 
 <span class="comment">// the Windows API and construct our own struct to avoid 
(a) having to do</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160; 
 <span class="comment">// hairy size calculations and (b) having to allocate 
dynamically, and then</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160; 
 <span class="comment">// worry about deallocating.</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160; 
 <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160; 
   DWORD     NumberOfAssignedProcesses;</div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160; 
   DWORD     NumberOfProcessIdsInList;</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160; 
   DWORD     ProcessIdList[max_pids];</div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160; 
 } pid_list;</div>
-<div class="line"><a name="l00695"></a><span class="lineno">  
695</span>&#160;</div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160; 
 BOOL result = ::QueryInformationJobObject(</div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160; 
   job_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160; 
   JobObjectBasicProcessIdList,</div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160; 
   <span 
class="keyword">reinterpret_cast&lt;</span>JOBOBJECT_BASIC_PROCESS_ID_LIST*<span
 class="keyword">&gt;</span>(&amp;pid_list),</div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160; 
   <span class="keyword">sizeof</span>(pid_list),</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160; 
   <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00702"></a><span class="lineno">  
702</span>&#160;</div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160; 
 <span class="comment">// `ERROR_MORE_DATA` indicates we need a larger 
`max_pids`.</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE &amp;&amp; 
::GetLastError() == ERROR_MORE_DATA) {</div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="structNone.html">None</a>();</div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160; 
 }</div>
-<div class="line"><a name="l00707"></a><span class="lineno">  
707</span>&#160;</div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160; 
     <span class="stringliteral">&quot;os::_get_job_processes: call to 
`QueryInformationJobObject` failed&quot;</span>);</div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160; 
 }</div>
-<div class="line"><a name="l00712"></a><span class="lineno">  
712</span>&#160;</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160; 
 std::set&lt;Process&gt; <a class="code" 
href="namespaceos.html#aa98ca8ac255e2b9c689979a1b40084d3">processes</a>;</div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160; 
 <span class="keywordflow">for</span> (DWORD i = 0; i &lt; 
pid_list.NumberOfProcessIdsInList; ++i) {</div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160; 
   <a class="code" href="classResult.html">Result&lt;Process&gt;</a> <a 
class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a> = <a 
class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">os::process</a>(pid_list.ProcessIdList[i]);</div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160; 
   <span class="keywordflow">if</span> (process.<a class="code" 
href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160; 
     processes.insert(process.<a class="code" 
href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>());</div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160; 
   }</div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160; 
 }</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  
720</span>&#160;</div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="namespaceos.html#aa98ca8ac255e2b9c689979a1b40084d3">processes</a>;</div>
-<div class="line"><a name="l00722"></a><span class="lineno">  
722</span>&#160;}</div>
-<div class="line"><a name="l00723"></a><span class="lineno">  
723</span>&#160;</div>
-<div class="line"><a name="l00724"></a><span class="lineno">  
724</span>&#160;</div>
-<div class="line"><a name="l00725"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a7361a49972acf9a2c28361a46199f484">  
725</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;std::set&lt;Process&gt;</a>&gt; <a class="code" 
href="namespaceos.html#a7361a49972acf9a2c28361a46199f484">get_job_processes</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid)</div>
-<div class="line"><a name="l00726"></a><span class="lineno">  
726</span>&#160;{</div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160; 
 <span class="comment">// TODO(andschwa): Overload open_job to use 
pid.</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;SharedHandle&gt;</a> job_handle = 
<a class="code" 
href="namespaceos.html#aa3da520f1619211c592b12a92639a1f9">os::open_job</a>(</div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160; 
   JOB_OBJECT_QUERY,</div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160; 
   <span class="keyword">false</span>,</div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160; 
   pid);</div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(job_handle.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160; 
 }</div>
+<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a88a1637a0168d78faad2ac5b82e5cc4d">  
607</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;SharedHandle&gt;</a> <a class="code" 
href="namespaceos.html#a88a1637a0168d78faad2ac5b82e5cc4d">create_job</a>(<span 
class="keyword">const</span> std::wstring&amp; <a class="code" 
href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>)</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  
608</span>&#160;{</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160; 
 <a class="code" href="classSharedHandle.html">SharedHandle</a> 
job_handle(</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160; 
     ::CreateJobObjectW(</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160; 
         <span class="keyword">nullptr</span>,       <span class="comment">// 
Use a default security descriptor, and</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160; 
                        <span class="comment">// the created handle cannot be 
inherited.</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160; 
         name.data()),  <span class="comment">// The name of the 
job.</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160; 
     ::CloseHandle);</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  
615</span>&#160;</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>()
 == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160; 
       <span class="stringliteral">&quot;os::create_job: Call to 
`CreateJobObject` failed for job: &quot;</span> +</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160; 
       <a class="code" 
href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(name));</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160; 
 }</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  
621</span>&#160;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160; 
 <span class="keywordflow">return</span> job_handle;</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  
623</span>&#160;}</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  
624</span>&#160;</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  
625</span>&#160;</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  
626</span>&#160;<span class="comment">// `get_job_info` gets the job object 
information for the process group</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  
627</span>&#160;<span class="comment">// represented by `pid`, assuming it is 
assigned to a job object. This function</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  
628</span>&#160;<span class="comment">// will fail otherwise.</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  
629</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  
630</span>&#160;<span class="comment">// 
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684925(v=vs.85).aspx 
// NOLINT(whitespace/line_length)</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"><a class="line" 
href="namespaceos.html#ade6490bdde78aaec7d3ffec9396e1018">  
631</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;JOBOBJECT_BASIC_ACCOUNTING_INFORMATION&gt;</a> <a 
class="code" 
href="namespaceos.html#ade6490bdde78aaec7d3ffec9396e1018">get_job_info</a>(<a 
class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid)</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  
632</span>&#160;{</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;SharedHandle&gt;</a> job_handle = 
<a class="code" 
href="namespaceos.html#aa3da520f1619211c592b12a92639a1f9">os::open_job</a>(</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160; 
     JOB_OBJECT_QUERY,</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160; 
     <span class="keyword">false</span>,</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160; 
     pid);</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(job_handle.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160; 
 }</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  
640</span>&#160;</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160; 
 JOBOBJECT_BASIC_ACCOUNTING_INFORMATION info = {};</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  
642</span>&#160;</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160; 
 BOOL result = ::QueryInformationJobObject(</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160; 
   job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>().<a 
class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160; 
   JobObjectBasicAccountingInformation,</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160; 
   &amp;info,</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160; 
   <span class="keyword">sizeof</span>(info),</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160; 
   <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160; 
     <span class="stringliteral">&quot;os::get_job_info: call to 
`QueryInformationJobObject` failed&quot;</span>);</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160; 
 }</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  
653</span>&#160;</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160; 
 <span class="keywordflow">return</span> info;</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  
655</span>&#160;}</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  
656</span>&#160;</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  
657</span>&#160;</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  
658</span>&#160;<span class="keyword">template</span> &lt;<span 
class="keywordtype">size_t</span> max_p<span 
class="keywordtype">id</span>s&gt;</div>
+<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a97c21dd769e29b904e192e591ed11096">  
659</a></span>&#160;<a class="code" 
href="classResult.html">Result&lt;std::set&lt;Process&gt;</a>&gt; <a 
class="code" 
href="namespaceos.html#a97c21dd769e29b904e192e591ed11096">_get_job_processes</a>(<span
 class="keyword">const</span> <a class="code" 
href="classSharedHandle.html">SharedHandle</a>&amp; job_handle) {</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160; 
 <span class="comment">// This is a statically allocated 
`JOBOBJECT_BASIC_PROCESS_ID_LIST`. We lie to</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160; 
 <span class="comment">// the Windows API and construct our own struct to avoid 
(a) having to do</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160; 
 <span class="comment">// hairy size calculations and (b) having to allocate 
dynamically, and then</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160; 
 <span class="comment">// worry about deallocating.</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160; 
 <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160; 
   DWORD     NumberOfAssignedProcesses;</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160; 
   DWORD     NumberOfProcessIdsInList;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160; 
   DWORD     ProcessIdList[max_pids];</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160; 
 } pid_list;</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  
669</span>&#160;</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160; 
 BOOL result = ::QueryInformationJobObject(</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160; 
   job_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160; 
   JobObjectBasicProcessIdList,</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160; 
   <span 
class="keyword">reinterpret_cast&lt;</span>JOBOBJECT_BASIC_PROCESS_ID_LIST*<span
 class="keyword">&gt;</span>(&amp;pid_list),</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160; 
   <span class="keyword">sizeof</span>(pid_list),</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160; 
   <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  
676</span>&#160;</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160; 
 <span class="comment">// `ERROR_MORE_DATA` indicates we need a larger 
`max_pids`.</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE &amp;&amp; 
::GetLastError() == ERROR_MORE_DATA) {</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="structNone.html">None</a>();</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160; 
 }</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  
681</span>&#160;</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160; 
     <span class="stringliteral">&quot;os::_get_job_processes: call to 
`QueryInformationJobObject` failed&quot;</span>);</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160; 
 }</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  
686</span>&#160;</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160; 
 std::set&lt;Process&gt; <a class="code" 
href="namespaceos.html#aa98ca8ac255e2b9c689979a1b40084d3">processes</a>;</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160; 
 <span class="keywordflow">for</span> (DWORD i = 0; i &lt; 
pid_list.NumberOfProcessIdsInList; ++i) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160; 
   <a class="code" href="classResult.html">Result&lt;Process&gt;</a> <a 
class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a> = <a 
class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">os::process</a>(pid_list.ProcessIdList[i]);</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160; 
   <span class="keywordflow">if</span> (process.<a class="code" 
href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160; 
     processes.insert(process.<a class="code" 
href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>());</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160; 
   }</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160; 
 }</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  
694</span>&#160;</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="namespaceos.html#aa98ca8ac255e2b9c689979a1b40084d3">processes</a>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  
696</span>&#160;}</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  
697</span>&#160;</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  
698</span>&#160;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a7361a49972acf9a2c28361a46199f484">  
699</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;std::set&lt;Process&gt;</a>&gt; <a class="code" 
href="namespaceos.html#a7361a49972acf9a2c28361a46199f484">get_job_processes</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid)</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  
700</span>&#160;{</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160; 
 <span class="comment">// TODO(andschwa): Overload open_job to use 
pid.</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;SharedHandle&gt;</a> job_handle = 
<a class="code" 
href="namespaceos.html#aa3da520f1619211c592b12a92639a1f9">os::open_job</a>(</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160; 
   JOB_OBJECT_QUERY,</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160; 
   <span class="keyword">false</span>,</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160; 
   pid);</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(job_handle.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160; 
 }</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  
709</span>&#160;</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160; 
 <span class="comment">// Try to enumerate the processes with three sizes: 32, 
1K, and 32K.</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno">  
711</span>&#160;</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160; 
 <a class="code" 
href="classResult.html">Result&lt;std::set&lt;Process&gt;</a>&gt; result =</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160; 
   os::_get_job_processes&lt;32&gt;(job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>());</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160; 
 <span class="keywordflow">if</span> (result.<a class="code" 
href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(result.<a class="code" 
href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160; 
 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> 
(result.<a class="code" 
href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160; 
   <span class="keywordflow">return</span> result.<a class="code" 
href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160; 
 }</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  
719</span>&#160;</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160; 
 result = os::_get_job_processes&lt;32*32&gt;(job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>());</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160; 
 <span class="keywordflow">if</span> (result.<a class="code" 
href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(result.<a class="code" 
href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160; 
 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> 
(result.<a class="code" 
href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160; 
   <span class="keywordflow">return</span> result.<a class="code" 
href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160; 
 }</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  
726</span>&#160;</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160; 
 result = os::_get_job_processes&lt;32*32*32&gt;(job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>());</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160; 
 <span class="keywordflow">if</span> (result.<a class="code" 
href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(result.<a class="code" 
href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160; 
 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> 
(result.<a class="code" 
href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160; 
   <span class="keywordflow">return</span> result.<a class="code" 
href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160; 
 }</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  
733</span>&#160;</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160; 
 <span class="comment">// If it was bigger than 32K, something else has gone 
wrong.</span></div>
 <div class="line"><a name="l00735"></a><span class="lineno">  
735</span>&#160;</div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160; 
 <span class="comment">// Try to enumerate the processes with three sizes: 32, 
1K, and 32K.</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno">  
737</span>&#160;</div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160; 
 <a class="code" 
href="classResult.html">Result&lt;std::set&lt;Process&gt;</a>&gt; result =</div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160; 
   os::_get_job_processes&lt;32&gt;(job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>());</div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160; 
 <span class="keywordflow">if</span> (result.<a class="code" 
href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(result.<a class="code" 
href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160; 
 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> 
(result.<a class="code" 
href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160; 
   <span class="keywordflow">return</span> result.<a class="code" 
href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(<span 
class="stringliteral">&quot;os::get_job_processes: failed to get 
processes&quot;</span>);</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  
737</span>&#160;}</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  
738</span>&#160;</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  
739</span>&#160;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a2719d5e9978531adac530780f6a97cf2">  
740</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;Bytes&gt;</a> <a class="code" 
href="namespaceos.html#a2719d5e9978531adac530780f6a97cf2">get_job_mem</a>(<a 
class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid) {</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160; 
 <span class="keyword">const</span> <a class="code" 
href="classTry.html">Try&lt;std::set&lt;Process&gt;</a>&gt; processes = <a 
class="code" 
href="namespaceos.html#a7361a49972acf9a2c28361a46199f484">os::get_job_processes</a>(pid);</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160; 
 <span class="keywordflow">if</span> (processes.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(processes.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
 <div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160; 
 }</div>
 <div class="line"><a name="l00745"></a><span class="lineno">  
745</span>&#160;</div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160; 
 result = os::_get_job_processes&lt;32*32&gt;(job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>());</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160; 
 <span class="keywordflow">if</span> (result.<a class="code" 
href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(result.<a class="code" 
href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160; 
 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> 
(result.<a class="code" 
href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160; 
   <span class="keywordflow">return</span> result.<a class="code" 
href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160; 
 }</div>
-<div class="line"><a name="l00752"></a><span class="lineno">  
752</span>&#160;</div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160; 
 result = os::_get_job_processes&lt;32*32*32&gt;(job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>());</div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160; 
 <span class="keywordflow">if</span> (result.<a class="code" 
href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(result.<a class="code" 
href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160; 
 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> 
(result.<a class="code" 
href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160; 
   <span class="keywordflow">return</span> result.<a class="code" 
href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160; 
 }</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160; 
 <span class="keywordflow">return</span> std::accumulate(</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160; 
   processes.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>().cbegin(),</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160; 
   processes.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>().cend(),</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160; 
   <a class="code" href="classBytes.html">Bytes</a>(0),</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160; 
   [](<span class="keyword">const</span> <a class="code" 
href="classBytes.html">Bytes</a>&amp; bytes, <span class="keyword">const</span> 
<a class="code" href="structos_1_1Process.html">Process</a>&amp; <a 
class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>) {</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160; 
     <span class="keywordflow">if</span> (<a class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>.rss.isNone())
 {</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160; 
       <span class="keywordflow">return</span> bytes;</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160; 
     }</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  
754</span>&#160;</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160; 
     <span class="keywordflow">return</span> bytes + <a class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>.rss.get();</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160; 
   });</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  
757</span>&#160;}</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  
758</span>&#160;</div>
 <div class="line"><a name="l00759"></a><span class="lineno">  
759</span>&#160;</div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160; 
 <span class="comment">// If it was bigger than 32K, something else has gone 
wrong.</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno">  
761</span>&#160;</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(<span 
class="stringliteral">&quot;os::get_job_processes: failed to get 
processes&quot;</span>);</div>
-<div class="line"><a name="l00763"></a><span class="lineno">  
763</span>&#160;}</div>
-<div class="line"><a name="l00764"></a><span class="lineno">  
764</span>&#160;</div>
-<div class="line"><a name="l00765"></a><span class="lineno">  
765</span>&#160;</div>
-<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a2719d5e9978531adac530780f6a97cf2">  
766</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;Bytes&gt;</a> <a class="code" 
href="namespaceos.html#a2719d5e9978531adac530780f6a97cf2">get_job_mem</a>(<a 
class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid) {</div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160; 
 <span class="keyword">const</span> <a class="code" 
href="classTry.html">Try&lt;std::set&lt;Process&gt;</a>&gt; processes = <a 
class="code" 
href="namespaceos.html#a7361a49972acf9a2c28361a46199f484">os::get_job_processes</a>(pid);</div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160; 
 <span class="keywordflow">if</span> (processes.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(processes.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160; 
 }</div>
-<div class="line"><a name="l00771"></a><span class="lineno">  
771</span>&#160;</div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160; 
 <span class="keywordflow">return</span> std::accumulate(</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160; 
   processes.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>().cbegin(),</div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160; 
   processes.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>().cend(),</div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160; 
   <a class="code" href="classBytes.html">Bytes</a>(0),</div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160; 
   [](<span class="keyword">const</span> <a class="code" 
href="classBytes.html">Bytes</a>&amp; bytes, <span class="keyword">const</span> 
<a class="code" href="structos_1_1Process.html">Process</a>&amp; <a 
class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>) {</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160; 
     <span class="keywordflow">if</span> (<a class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>.rss.isNone())
 {</div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160; 
       <span class="keywordflow">return</span> bytes;</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160; 
     }</div>
-<div class="line"><a name="l00780"></a><span class="lineno">  
780</span>&#160;</div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160; 
     <span class="keywordflow">return</span> bytes + <a class="code" 
href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>.rss.get();</div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160; 
   });</div>
-<div class="line"><a name="l00783"></a><span class="lineno">  
783</span>&#160;}</div>
-<div class="line"><a name="l00784"></a><span class="lineno">  
784</span>&#160;</div>
-<div class="line"><a name="l00785"></a><span class="lineno">  
785</span>&#160;</div>
-<div class="line"><a name="l00786"></a><span class="lineno">  
786</span>&#160;<span class="comment">// `set_job_cpu_limit` sets a CPU limit 
for the process represented by</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno">  
787</span>&#160;<span class="comment">// `pid`, assuming it is assigned to a 
job object. This function will fail</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno">  
788</span>&#160;<span class="comment">// otherwise. This limit is a hard cap 
enforced by the OS.</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno">  
789</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno">  
790</span>&#160;<span class="comment">// 
https://msdn.microsoft.com/en-us/library/windows/desktop/hh448384(v=vs.85).aspx 
// NOLINT(whitespace/line_length)</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a66d4371272f7c8f52ffb4f440c5a3762">  
791</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" 
href="namespaceos.html#a66d4371272f7c8f52ffb4f440c5a3762">set_job_cpu_limit</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid, <span class="keywordtype">double</span> <a class="code" 
href="namespaceos.html#afd08813156fea899c86b340d9767a8cd">cpus</a>)</div>
-<div class="line"><a name="l00792"></a><span class="lineno">  
792</span>&#160;{</div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160; 
 JOBOBJECT_CPU_RATE_CONTROL_INFORMATION control_info = {};</div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160; 
 control_info.ControlFlags =</div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160; 
   JOB_OBJECT_CPU_RATE_CONTROL_ENABLE |</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160; 
   JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP;</div>
-<div class="line"><a name="l00797"></a><span class="lineno">  
797</span>&#160;</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160; 
 <span class="comment">// This `CpuRate` is the number of cycles per 10,000 
cycles, or a percentage</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160; 
 <span class="comment">// times 100, e.g. 20% yields 20 * 100 = 2,000. However, 
the `cpus` argument</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160; 
 <span class="comment">// represents 1 CPU core with `1.0`, so a 100% CPU limit 
on a quad-core</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160; 
 <span class="comment">// machine would be `4.0 cpus`. Thus a mapping of `cpus` 
to `CpuRate` is</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160; 
 <span class="comment">// `(cpus / os::cpus()) * 100 * 100`, or the requested 
`cpus` divided by the</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160; 
 <span class="comment">// number of CPUs to obtain a fractional representation, 
multiplied by 100 to</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160; 
 <span class="comment">// make it a percentage, multiplied again by 100 to 
become a `CpuRate`.</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;long&gt;</a> total_cpus = <a 
class="code" 
href="namespaceos.html#afd08813156fea899c86b340d9767a8cd">os::cpus</a>();</div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160; 
 control_info.CpuRate =</div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160; 
   <span class="keyword">static_cast&lt;</span>DWORD<span 
class="keyword">&gt;</span>((cpus / total_cpus.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>()) * 100 * 
100);</div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160; 
 <span class="comment">// This must not be set to 0, so 1 is the 
minimum.</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160; 
 <span class="keywordflow">if</span> (control_info.CpuRate &lt; 1) {</div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160; 
   control_info.CpuRate = 1;</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160; 
 }</div>
-<div class="line"><a name="l00812"></a><span class="lineno">  
812</span>&#160;</div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;SharedHandle&gt;</a> job_handle = 
<a class="code" 
href="namespaceos.html#aa3da520f1619211c592b12a92639a1f9">os::open_job</a>(</div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160; 
     JOB_OBJECT_SET_ATTRIBUTES,</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160; 
     <span class="keyword">false</span>,</div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160; 
     pid);</div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(job_handle.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160; 
 }</div>
-<div class="line"><a name="l00820"></a><span class="lineno">  
820</span>&#160;</div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160; 
 BOOL result = ::SetInformationJobObject(</div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160; 
   job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>().<a 
class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160; 
   JobObjectCpuRateControlInformation,</div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160; 
   &amp;control_info,</div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160; 
   <span class="keyword">sizeof</span>(control_info));</div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160; 
     <span class="stringliteral">&quot;os::set_job_cpu_limit: call to 
`SetInformationJobObject` failed&quot;</span>);</div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160; 
 }</div>
-<div class="line"><a name="l00830"></a><span class="lineno">  
830</span>&#160;</div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00832"></a><span class="lineno">  
832</span>&#160;}</div>
-<div class="line"><a name="l00833"></a><span class="lineno">  
833</span>&#160;</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  
834</span>&#160;</div>
-<div class="line"><a name="l00835"></a><span class="lineno">  
835</span>&#160;<span class="comment">// `set_job_mem_limit` sets a memory 
limit for the process represented by</span></div>
-<div class="line"><a name="l00836"></a><span class="lineno">  
836</span>&#160;<span class="comment">// `pid`, assuming it is assigned to a 
job object. This function will fail</span></div>
-<div class="line"><a name="l00837"></a><span class="lineno">  
837</span>&#160;<span class="comment">// otherwise. This limit is a hard cap 
enforced by the OS.</span></div>
-<div class="line"><a name="l00838"></a><span class="lineno">  
838</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno">  
839</span>&#160;<span class="comment">// 
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684156(v=vs.85).aspx 
// NOLINT(whitespace/line_length)</span></div>
-<div class="line"><a name="l00840"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a24a3f6dbfa918c7ac934a2323a824eb4">  
840</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" 
href="namespaceos.html#a24a3f6dbfa918c7ac934a2323a824eb4">set_job_mem_limit</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid, <a class="code" href="classBytes.html">Bytes</a> limit)</div>
-<div class="line"><a name="l00841"></a><span class="lineno">  
841</span>&#160;{</div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160; 
 JOBOBJECT_EXTENDED_LIMIT_INFORMATION info = {};</div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160; 
 info.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_JOB_MEMORY;</div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160; 
 info.JobMemoryLimit = limit.<a class="code" 
href="classBytes.html#a1a2e9277ebe7d227a21f111898c49a8c">bytes</a>();</div>
-<div class="line"><a name="l00845"></a><span class="lineno">  
845</span>&#160;</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;SharedHandle&gt;</a> job_handle = 
<a class="code" 
href="namespaceos.html#aa3da520f1619211c592b12a92639a1f9">os::open_job</a>(</div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160; 
     JOB_OBJECT_SET_ATTRIBUTES,</div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160; 
     <span class="keyword">false</span>,</div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160; 
     pid);</div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(job_handle.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160; 
 }</div>
-<div class="line"><a name="l00853"></a><span class="lineno">  
853</span>&#160;</div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160; 
 BOOL result = ::SetInformationJobObject(</div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160; 
   job_handle.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>().<a 
class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160; 
   JobObjectExtendedLimitInformation,</div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160; 
   &amp;info,</div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160; 
   <span class="keyword">sizeof</span>(info));</div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160; 
     <span class="stringliteral">&quot;os::set_job_mem_limit: call to 
`SetInformationJobObject` failed&quot;</span>);</div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160; 
 }</div>
-<div class="line"><a name="l00863"></a><span class="lineno">  
863</span>&#160;</div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00865"></a><span class="lineno">  
865</span>&#160;}</div>
-<div class="line"><a name="l00866"></a><span class="lineno">  
866</span>&#160;</div>
-<div class="line"><a name="l00867"></a><span class="lineno">  
867</span>&#160;</div>
-<div class="line"><a name="l00868"></a><span class="lineno">  
868</span>&#160;<span class="comment">// `assign_job` assigns a process with 
`pid` to the job object `job_handle`.</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno">  
869</span>&#160;<span class="comment">// Every process started by the `pid` 
process using `CreateProcess`</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno">  
870</span>&#160;<span class="comment">// will also be owned by the job 
object.</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a706dc9d1287978f358a9a23b77037fb0">  
871</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" 
href="namespaceos.html#a706dc9d1287978f358a9a23b77037fb0">assign_job</a>(<a 
class="code" href="classSharedHandle.html">SharedHandle</a> job_handle, <a 
class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid) {</div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160; 
 <span class="comment">// Get process handle for `pid`.</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160; 
 <a class="code" href="classSharedHandle.html">SharedHandle</a> 
process_handle(</div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160; 
     ::OpenProcess(</div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160; 
         <span class="comment">// Required access rights to assign to a Job 
Object.</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160; 
         PROCESS_SET_QUOTA | PROCESS_TERMINATE,</div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160; 
         <span class="keyword">false</span>, <span class="comment">// Don&#39;t 
inherit handle.</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160; 
         pid),</div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160; 
     ::CloseHandle);</div>
-<div class="line"><a name="l00880"></a><span class="lineno">  
880</span>&#160;</div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160; 
 <span class="keywordflow">if</span> (process_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>()
 == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160; 
       <span class="stringliteral">&quot;os::assign_job: Call to `OpenProcess` 
failed&quot;</span>);</div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160; 
 }</div>
-<div class="line"><a name="l00885"></a><span class="lineno">  
885</span>&#160;</div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160; 
 <span class="keyword">const</span> BOOL result = 
::AssignProcessToJobObject(</div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160; 
     job_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160; 
     process_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>());</div>
-<div class="line"><a name="l00889"></a><span class="lineno">  
889</span>&#160;</div>
-<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160; 
       <span class="stringliteral">&quot;os::assign_job: Call to 
`AssignProcessToJobObject` failed&quot;</span>);</div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160; 
 };</div>
-<div class="line"><a name="l00894"></a><span class="lineno">  
894</span>&#160;</div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00896"></a><span class="lineno">  
896</span>&#160;}</div>
-<div class="line"><a name="l00897"></a><span class="lineno">  
897</span>&#160;</div>
-<div class="line"><a name="l00898"></a><span class="lineno">  
898</span>&#160;</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  
899</span>&#160;<span class="comment">// The `kill_job` function wraps the 
Windows sytem call `TerminateJobObject`</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno">  
900</span>&#160;<span class="comment">// for the job object `job_handle`. This 
will call `TerminateProcess`</span></div>
-<div class="line"><a name="l00901"></a><span class="lineno">  
901</span>&#160;<span class="comment">// for every associated child 
process.</span></div>
-<div class="line"><a name="l00902"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a8181969d159a69d91d1e265f1bb1eddc">  
902</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" 
href="namespaceos.html#a8181969d159a69d91d1e265f1bb1eddc">kill_job</a>(<a 
class="code" href="classSharedHandle.html">SharedHandle</a> job_handle)</div>
-<div class="line"><a name="l00903"></a><span class="lineno">  
903</span>&#160;{</div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160; 
 <span class="keyword">const</span> BOOL result = ::TerminateJobObject(</div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160; 
     job_handle.<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160; 
     <span class="comment">// The exit code to be used by all processes in the 
job object.</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160; 
     1);</div>
-<div class="line"><a name="l00908"></a><span class="lineno">  
908</span>&#160;</div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160; 
       <span class="stringliteral">&quot;os::kill_job: Call to 
`TerminateJobObject` failed&quot;</span>);</div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160; 
 }</div>
-<div class="line"><a name="l00913"></a><span class="lineno">  
913</span>&#160;</div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00915"></a><span class="lineno">  
915</span>&#160;}</div>
-<div class="line"><a name="l00916"></a><span class="lineno">  
916</span>&#160;</div>
-<div class="line"><a name="l00917"></a><span class="lineno">  
917</span>&#160;</div>
-<div class="line"><a name="l00918"></a><span class="lineno">  
918</span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;std::string&gt;</a> <a class="code" 
href="namespaceos.html#a547f04b42e472b2ff0070897010fac78">var</a>()</div>
-<div class="line"><a name="l00919"></a><span class="lineno">  
919</span>&#160;{</div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160; 
 <span class="comment">// Get the `ProgramData` path. First, find the size of 
the output buffer.</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160; 
 <span class="comment">// This size includes the null-terminating 
character.</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160; 
 DWORD <a class="code" 
href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a> = 
0;</div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160; 
 <span class="keywordflow">if</span> (::GetAllUsersProfileDirectoryW(<span 
class="keyword">nullptr</span>, &amp;size)) {</div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160; 
   <span class="comment">// The expected behavior here is for the function to 
&quot;fail&quot;</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160; 
   <span class="comment">// and return `false`, and `size` receives necessary 
buffer size.</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160; 
       <span class="stringliteral">&quot;os::var: 
`GetAllUsersProfileDirectoryW` succeeded unexpectedly&quot;</span>);</div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160; 
 }</div>
-<div class="line"><a name="l00929"></a><span class="lineno">  
929</span>&#160;</div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160; 
 std::vector&lt;wchar_t&gt; buffer;</div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160; 
 buffer.reserve(static_cast&lt;size_t&gt;(size));</div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160; 
 <span class="keywordflow">if</span> 
(!::GetAllUsersProfileDirectoryW(buffer.data(), &amp;<a class="code" 
href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>)) 
{</div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(<span 
class="stringliteral">&quot;os::var: `GetAllUsersProfileDirectoryW` 
failed&quot;</span>);</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  
760</span>&#160;<span class="comment">// `set_job_kill_on_close_limit` causes 
the job object to terminate all</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno">  
761</span>&#160;<span class="comment">// processes assigned to it when the last 
handle to the job object is closed.</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno">  
762</span>&#160;<span class="comment">// This can be used to limit the lifetime 
of the process group represented by</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno">  
763</span>&#160;<span class="comment">// the job object. Without this limit 
set, the processes will continue to run.</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a580730039534bf4757e3e8b0e1e3db10">  
764</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" 
href="namespaceos.html#a580730039534bf4757e3e8b0e1e3db10">set_job_kill_on_close_limit</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid)</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  
765</span>&#160;{</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;SharedHandle&gt;</a> job_handle 
=</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160; 
   <a class="code" 
href="namespaceos.html#aa3da520f1619211c592b12a92639a1f9">os::open_job</a>(JOB_OBJECT_SET_ATTRIBUTES,
 <span class="keyword">false</span>, pid);</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  
768</span>&#160;</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160; 
 <span class="keywordflow">if</span> (job_handle.<a class="code" 
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classError.html">Error</a>(job_handle.<a class="code" 
href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160; 
 }</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  
772</span>&#160;</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160; 
 JOBOBJECT_EXTENDED_LIMIT_INFORMATION info = {};</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160; 
 info.BasicLimitInformation.LimitFlags = 
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  
775</span>&#160;</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160; 
 <span class="keyword">const</span> BOOL result = 
::SetInformationJobObject(</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160; 
     job_handle-&gt;<a class="code" 
href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160; 
     JobObjectExtendedLimitInformation,</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160; 
     &amp;info,</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; 
     <span class="keyword">sizeof</span>(info));</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  
781</span>&#160;</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160; 
 <span class="keywordflow">if</span> (result == FALSE) {</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160; 
   <span class="keywordflow">return</span> <a class="code" 
href="classWindowsError.html">WindowsError</a>(</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160; 
       <span class="stringliteral">&quot;os::set_job_kill_on_close_limit: call 
to `SetInformationJobObject` &quot;</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160; 
       <span class="stringliteral">&quot;failed&quot;</span>);</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160; 
 }</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  
787</span>&#160;</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160; 
 <span class="keywordflow">return</span> <a class="code" 
href="structNothing.html">Nothing</a>();</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  
789</span>&#160;}</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  
790</span>&#160;</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  
791</span>&#160;</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  
792</span>&#160;<span class="comment">// `set_job_cpu_limit` sets a CPU limit 
for the process represented by</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  
793</span>&#160;<span class="comment">// `pid`, assuming it is assigned to a 
job object. This function will fail</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  
794</span>&#160;<span class="comment">// otherwise. This limit is a hard cap 
enforced by the OS.</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  
795</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno">  
796</span>&#160;<span class="comment">// 
https://msdn.microsoft.com/en-us/library/windows/desktop/hh448384(v=vs.85).aspx 
// NOLINT(whitespace/line_length)</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"><a class="line" 
href="namespaceos.html#a66d4371272f7c8f52ffb4f440c5a3762">  
797</a></span>&#160;<span class="keyword">inline</span> <a class="code" 
href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" 
href="namespaceos.html#a66d4371272f7c8f52ffb4f440c5a3762">set_job_cpu_limit</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>
 pid, <span class="keywordtype">double</span> <a class="code" 
href="namespaceos.html#afd08813156fea899c86b340d9767a8cd">cpus</a>)</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  
798</span>&#160;{</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160; 
 JOBOBJECT_CPU_RATE_CONTROL_INFORMATION control_info = {};</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160; 
 control_info.ControlFlags =</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160; 
   JOB_OBJECT_CPU_RATE_CONTROL_ENABLE |</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160; 
   JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP;</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  
803</span>&#160;</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160; 
 <span class="comment">// This `CpuRate` is the number of cycles per 10,000 
cycles, or a percentage</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160; 
 <span class="comment">// times 100, e.g. 20% yields 20 * 100 = 2,000. However, 
the `cpus` argument</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160; 
 <span class="comment">// represents 1 CPU core with `1.0`, so a 100% CPU limit 
on a quad-core</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160; 
 <span class="comment">// machine would be `4.0 cpus`. Thus a mapping of `cpus` 
to `CpuRate` is</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160; 
 <span class="comment">// `(cpus / os::cpus()) * 100 * 100`, or the requested 
`cpus` divided by the</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160; 
 <span class="comment">// number of CPUs to obtain a fractional representation, 
multiplied by 100 to</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160; 
 <span class="comment">// make it a percentage, multiplied again by 100 to 
become a `CpuRate`.</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;long&gt;</a> total_cpus = <a 
class="code" 
href="namespaceos.html#afd08813156fea899c86b340d9767a8cd">os::cpus</a>();</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160; 
 control_info.CpuRate =</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160; 
   <span class="keyword">static_cast&lt;</span>DWORD<span 
class="keyword">&gt;</span>((cpus / total_cpus.<a class="code" 
href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>()) * 100 * 
100);</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160; 
 <span class="comment">// This must not be set to 0, so 1 is the 
minimum.</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160; 
 <span class="keywordflow">if</span> (control_info.CpuRate &lt; 1) {</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160; 
   control_info.CpuRate = 1;</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160; 
 }</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  
818</span>&#160;</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160; 
 <a class="code" href="classTry.html">Try&lt;SharedHandle&gt;</a> job_handle = 
<a class="code" 
href="namespaceos.html#aa3da520f1619211c592b12a92639a1f9">os::open_job</a>(</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160; 
     JOB_OBJECT_SET_ATTRIBUTES,</

<TRUNCATED>

Reply via email to