oxipng/doc/scoped_pool/struct.Pool.html
2016-04-08 13:52:15 -04:00

165 lines
No EOL
8.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="rustdoc">
<meta name="description" content="API documentation for the Rust `Pool` struct in crate `scoped_pool`.">
<meta name="keywords" content="rust, rustlang, rust-lang, Pool">
<title>scoped_pool::Pool - Rust</title>
<link rel="stylesheet" type="text/css" href="../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../main.css">
</head>
<body class="rustdoc">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<p class='location'><a href='index.html'>scoped_pool</a></p><script>window.sidebarCurrent = {name: 'Pool', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content struct">
<h1 class='fqn'><span class='in-band'>Struct <a href='index.html'>scoped_pool</a>::<wbr><a class='struct' href=''>Pool</a></span><span class='out-of-band'><span id='render-detail'>
<a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
[<span class='inner'>&#x2212;</span>]
</a>
</span><a id='src-12' class='srclink' href='../src/scoped_pool/lib.rs.html#28-31' title='goto source code'>[src]</a></span></h1>
<pre class='rust struct'>pub struct Pool {
// some fields omitted
}</pre><div class='docblock'><p>A thread-pool providing scoped and unscoped threads.</p>
<p>The primary ways of interacting with the <code>Pool</code> are
the <code>spawn</code> and <code>scoped</code> convenience methods or through
the <code>Scope</code> type directly.</p>
</div><h2 id='methods'>Methods</h2><h3 class='impl'><code>impl <a class='struct' href='../scoped_pool/struct.Pool.html' title='scoped_pool::Pool'>Pool</a></code></h3><div class='impl-items'><h4 id='method.new' class='method'><code>fn <a href='#method.new' class='fnname'>new</a>(size: <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.usize.html'>usize</a>) -&gt; <a class='struct' href='../scoped_pool/struct.Pool.html' title='scoped_pool::Pool'>Pool</a></code></h4>
<div class='docblock'><p>Create a new Pool with <code>size</code> threads.</p>
<p>If <code>size</code> is zero, no threads will be spawned. Threads can
be added later via <code>expand</code>.</p>
<p>NOTE: Since Pool can be freely cloned, it does not represent a unique
handle to the thread pool. As a consequence, the thread pool is not
automatically shut down; you must explicitly call <code>Pool::shutdown</code> to
shut down the pool.</p>
</div><h4 id='method.empty' class='method'><code>fn <a href='#method.empty' class='fnname'>empty</a>() -&gt; <a class='struct' href='../scoped_pool/struct.Pool.html' title='scoped_pool::Pool'>Pool</a></code></h4>
<div class='docblock'><p>Create an empty Pool, with no threads.</p>
<p>Note that no jobs will run until <code>expand</code> is called and
worker threads are added.</p>
</div><h4 id='method.workers' class='method'><code>fn <a href='#method.workers' class='fnname'>workers</a>(&amp;self) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.usize.html'>usize</a></code></h4>
<div class='docblock'><p>How many worker threads are currently active.</p>
</div><h4 id='method.spawn' class='method'><code>fn <a href='#method.spawn' class='fnname'>spawn</a>&lt;F: <a class='trait' href='https://doc.rust-lang.org/nightly/core/ops/trait.FnOnce.html' title='core::ops::FnOnce'>FnOnce</a>() + <a class='trait' href='https://doc.rust-lang.org/nightly/core/marker/trait.Send.html' title='core::marker::Send'>Send</a> + 'static&gt;(&amp;self, job: F)</code></h4>
<div class='docblock'><p>Spawn a <code>&#39;static&#39;</code> job to be run on this pool.</p>
<p>We do not wait on the job to complete.</p>
<p>Panics in the job will propogate to the calling thread.</p>
</div><h4 id='method.scoped' class='method'><code>fn <a href='#method.scoped' class='fnname'>scoped</a>&lt;'scope, F, R&gt;(&amp;self, scheduler: F) -&gt; R <span class='where'>where F: <a class='trait' href='https://doc.rust-lang.org/nightly/core/ops/trait.FnOnce.html' title='core::ops::FnOnce'>FnOnce</a>(&amp;<a class='struct' href='../scoped_pool/struct.Scope.html' title='scoped_pool::Scope'>Scope</a>&lt;'scope&gt;) -&gt; R</span></code></h4>
<div class='docblock'><p>Create a Scope for scheduling a group of jobs in <code>&#39;scope&#39;</code>.</p>
<p><code>scoped</code> will return only when the <code>scheduler</code> function and
all jobs queued on the given Scope have been run.</p>
<p>Panics in any of the jobs or in the scheduler function itself
will propogate to the calling thread.</p>
</div><h4 id='method.shutdown' class='method'><code>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;self)</code></h4>
<div class='docblock'><p>Shutdown the Pool.</p>
<p>WARNING: Extreme care should be taken to not call shutdown concurrently
with any scoped calls, or deadlock can occur.</p>
<p>All threads will be shut down eventually, but only threads started before the
call to shutdown are guaranteed to be shut down before the call to shutdown
returns.</p>
</div><h4 id='method.expand' class='method'><code>fn <a href='#method.expand' class='fnname'>expand</a>(&amp;self)</code></h4>
<div class='docblock'><p>Expand the Pool by spawning an additional thread.</p>
<p>Can accelerate the completion of running jobs.</p>
</div></div><h2 id='implementations'>Trait Implementations</h2><h3 id='derived_implementations'>Derived Implementations </h3><h3 class='impl'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html' title='core::clone::Clone'>Clone</a> for <a class='struct' href='../scoped_pool/struct.Pool.html' title='scoped_pool::Pool'>Pool</a></code></h3><div class='impl-items'><h4 id='method.clone' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone' class='fnname'>clone</a>(&amp;self) -&gt; <a class='struct' href='../scoped_pool/struct.Pool.html' title='scoped_pool::Pool'>Pool</a></code></h4>
<h4 id='method.clone_from' class='method'><span class="since">1.0.0</span><code>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&amp;mut self, source: &amp;Self)</code></h4>
</div></section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt>&larrb;</dt>
<dd>Move up in search results</dd>
<dt>&rarrb;</dt>
<dd>Move down in search results</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
</dl>
</div>
<div class="infos">
<h2>Search Tricks</h2>
<p>
Prefix searches with a type followed by a colon (e.g.
<code>fn:</code>) to restrict the search to a given type.
</p>
<p>
Accepted types are: <code>fn</code>, <code>mod</code>,
<code>struct</code>, <code>enum</code>,
<code>trait</code>, <code>type</code>, <code>macro</code>,
and <code>const</code>.
</p>
<p>
Search functions by type signature (e.g.
<code>vec -> usize</code> or <code>* -> vec</code>)
</p>
</div>
</div>
</aside>
<script>
window.rootPath = "../";
window.currentCrate = "scoped_pool";
window.playgroundUrl = "";
</script>
<script src="../jquery.js"></script>
<script src="../main.js"></script>
<script defer src="../search-index.js"></script>
</body>
</html>