oxipng/doc/bitflags/__core/sync/struct.StaticMutex.html
2016-05-04 10:41:29 -04:00

157 lines
No EOL
9.4 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 `StaticMutex` struct in crate `bitflags`.">
<meta name="keywords" content="rust, rustlang, rust-lang, StaticMutex">
<title>bitflags::__core::sync::StaticMutex - 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'>bitflags</a>::<wbr><a href='../index.html'>__core</a>::<wbr><a href='index.html'>sync</a></p><script>window.sidebarCurrent = {name: 'StaticMutex', 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'>bitflags</a>::<wbr><a href='../index.html'>__core</a>::<wbr><a href='index.html'>sync</a>::<wbr><a class='struct' href=''>StaticMutex</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-10109' class='srclink' href='https://doc.rust-lang.org/nightly/std/sync/mutex/struct.StaticMutex.html?gotosrc=10109' title='goto source code'>[src]</a></span></h1>
<pre class='rust struct'>pub struct StaticMutex {
// some fields omitted
}</pre><div class='stability'><em class='stab unstable'>Unstable (<code>static_mutex</code>)<p>: may be merged with Mutex in the future</p>
</em></div><div class='docblock'><p>The static mutex type is provided to allow for static allocation of mutexes.</p>
<p>Note that this is a separate type because using a Mutex correctly means that
it needs to have a destructor run. In Rust, statics are not allowed to have
destructors. As a result, a <code>StaticMutex</code> has one extra method when compared
to a <code>Mutex</code>, a <code>destroy</code> method. This method is unsafe to call, and
documentation can be found directly on the method.</p>
<h1 id='examples' class='section-header'><a href='#examples'>Examples</a></h1>
<pre class='rust rust-example-rendered'>
<span class='attribute'>#<span class='op'>!</span>[<span class='ident'>feature</span>(<span class='ident'>static_mutex</span>)]</span>
<span class='kw'>use</span> <span class='ident'>std</span>::<span class='ident'>sync</span>::{<span class='ident'>StaticMutex</span>, <span class='ident'>MUTEX_INIT</span>};
<span class='kw'>static</span> <span class='ident'>LOCK</span>: <span class='ident'>StaticMutex</span> <span class='op'>=</span> <span class='ident'>MUTEX_INIT</span>;
{
<span class='kw'>let</span> <span class='ident'>_g</span> <span class='op'>=</span> <span class='ident'>LOCK</span>.<span class='ident'>lock</span>().<span class='ident'>unwrap</span>();
<span class='comment'>// do some productive work</span>
}
<span class='comment'>// lock is unlocked here.</span></pre>
</div><h2 id='methods'>Methods</h2><h3 class='impl'><code>impl <a class='struct' href='../../../bitflags/__core/sync/struct.StaticMutex.html' title='bitflags::__core::sync::StaticMutex'>StaticMutex</a></code></h3><div class='impl-items'><h4 id='method.new' class='method'><code>const fn <a href='#method.new' class='fnname'>new</a>() -&gt; <a class='struct' href='../../../bitflags/__core/sync/struct.StaticMutex.html' title='bitflags::__core::sync::StaticMutex'>StaticMutex</a></code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>static_mutex</code>)<p>: may be merged with Mutex in the future</p>
</em></div><div class='docblock'><p>Creates a new mutex in an unlocked state ready for use.</p>
</div><h4 id='method.lock' class='method'><code>fn <a href='#method.lock' class='fnname'>lock</a>(&amp;'static self) -&gt; <a class='enum' href='../../../bitflags/__core/result/enum.Result.html' title='bitflags::__core::result::Result'>Result</a>&lt;<a class='struct' href='../../../bitflags/__core/sync/struct.MutexGuard.html' title='bitflags::__core::sync::MutexGuard'>MutexGuard</a>&lt;'static, <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.tuple.html'>()</a>&gt;, <a class='struct' href='../../../bitflags/__core/sync/struct.PoisonError.html' title='bitflags::__core::sync::PoisonError'>PoisonError</a>&lt;<a class='struct' href='../../../bitflags/__core/sync/struct.MutexGuard.html' title='bitflags::__core::sync::MutexGuard'>MutexGuard</a>&lt;'static, <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.tuple.html'>()</a>&gt;&gt;&gt;</code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>static_mutex</code>)<p>: may be merged with Mutex in the future</p>
</em></div><div class='docblock'><p>Acquires this lock, see <code>Mutex::lock</code></p>
</div><h4 id='method.try_lock' class='method'><code>fn <a href='#method.try_lock' class='fnname'>try_lock</a>(&amp;'static self) -&gt; <a class='enum' href='../../../bitflags/__core/result/enum.Result.html' title='bitflags::__core::result::Result'>Result</a>&lt;<a class='struct' href='../../../bitflags/__core/sync/struct.MutexGuard.html' title='bitflags::__core::sync::MutexGuard'>MutexGuard</a>&lt;'static, <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.tuple.html'>()</a>&gt;, <a class='enum' href='../../../bitflags/__core/sync/enum.TryLockError.html' title='bitflags::__core::sync::TryLockError'>TryLockError</a>&lt;<a class='struct' href='../../../bitflags/__core/sync/struct.MutexGuard.html' title='bitflags::__core::sync::MutexGuard'>MutexGuard</a>&lt;'static, <a class='primitive' href='https://doc.rust-lang.org/nightly/bitflags/primitive.tuple.html'>()</a>&gt;&gt;&gt;</code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>static_mutex</code>)<p>: may be merged with Mutex in the future</p>
</em></div><div class='docblock'><p>Attempts to grab this lock, see <code>Mutex::try_lock</code></p>
</div><h4 id='method.destroy' class='method'><code>unsafe fn <a href='#method.destroy' class='fnname'>destroy</a>(&amp;'static self)</code></h4>
<div class='stability'><em class='stab unstable'>Unstable (<code>static_mutex</code>)<p>: may be merged with Mutex in the future</p>
</em></div><div class='docblock'><p>Deallocates resources associated with this static mutex.</p>
<p>This method is unsafe because it provides no guarantees that there are
no active users of this mutex, and safety is not guaranteed if there are
active users of this mutex.</p>
<p>This method is required to ensure that there are no memory leaks on
<em>all</em> platforms. It may be the case that some platforms do not leak
memory if this method is not called, but this is not guaranteed to be
true on all platforms.</p>
</div></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 = "bitflags";
window.playgroundUrl = "";
</script>
<script src="../../../jquery.js"></script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>