Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > 878cdd00a13d17a73c6619a777ef5d74 > files > 5278

rust-doc-1.19.0-1.mga6.x86_64.rpm

<!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 `park_timeout` fn in crate `std`.">
    <meta name="keywords" content="rust, rustlang, rust-lang, park_timeout">

    <title>std::thread::park_timeout - Rust</title>

    <link rel="stylesheet" type="text/css" href="../../normalize.css">
    <link rel="stylesheet" type="text/css" href="../../rustdoc.css">
    <link rel="stylesheet" type="text/css" href="../../main.css">
    

    <link rel="shortcut icon" href="https://doc.rust-lang.org/favicon.ico">
    
</head>
<body class="rustdoc fn">
    <!--[if lte IE 8]>
    <div class="warning">
        This old browser is unsupported and will most likely display funky
        things.
    </div>
    <![endif]-->

    

    <nav class="sidebar">
        <a href='../../std/index.html'><img src='https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png' alt='logo' width='100'></a>
        <p class='location'><a href='../index.html'>std</a>::<wbr><a href='index.html'>thread</a></p><script>window.sidebarCurrent = {name: 'park_timeout', ty: 'fn', 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">
<h1 class='fqn'><span class='in-band'>Function <a href='../index.html'>std</a>::<wbr><a href='index.html'>thread</a>::<wbr><a class="fn" href=''>park_timeout</a></span><span class='out-of-band'><span class='since' title='Stable since Rust version 1.4.0'>1.4.0</span><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 class='srclink' href='../../src/std/thread/mod.rs.html#801-809' title='goto source code'>[src]</a></span></h1>
<pre class='rust fn'>pub fn park_timeout(dur: <a class="struct" href="../../std/time/struct.Duration.html" title="struct std::time::Duration">Duration</a>)</pre><div class='docblock'><p>Blocks unless or until the current thread&#39;s token is made available or
the specified duration has been reached (may wake spuriously).</p>

<p>The semantics of this function are equivalent to <a href="fn.park.html"><code>park</code></a> except
that the thread will be blocked for roughly no longer than <code>dur</code>. This
method should not be used for precise timing due to anomalies such as
preemption or platform differences that may not cause the maximum
amount of time waited to be precisely <code>dur</code> long.</p>

<p>See the <a href="fn.park.html">park dococumentation</a> for more details.</p>

<h1 id='platform-behavior' class='section-header'><a href='#platform-behavior'>Platform behavior</a></h1>
<p>Platforms which do not support nanosecond precision for sleeping will have
<code>dur</code> rounded up to the nearest granularity of time they can sleep for.</p>

<h1 id='example' class='section-header'><a href='#example'>Example</a></h1>
<p>Waiting for the complete expiration of the timeout:</p>

<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">thread</span>::<span class="ident">park_timeout</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">time</span>::{<span class="ident">Instant</span>, <span class="ident">Duration</span>};

<span class="kw">let</span> <span class="ident">timeout</span> <span class="op">=</span> <span class="ident">Duration</span>::<span class="ident">from_secs</span>(<span class="number">2</span>);
<span class="kw">let</span> <span class="ident">beginning_park</span> <span class="op">=</span> <span class="ident">Instant</span>::<span class="ident">now</span>();
<span class="ident">park_timeout</span>(<span class="ident">timeout</span>);

<span class="kw">while</span> <span class="ident">beginning_park</span>.<span class="ident">elapsed</span>() <span class="op">&lt;</span> <span class="ident">timeout</span> {
    <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;restarting park_timeout after {:?}&quot;</span>, <span class="ident">beginning_park</span>.<span class="ident">elapsed</span>());
    <span class="kw">let</span> <span class="ident">timeout</span> <span class="op">=</span> <span class="ident">timeout</span> <span class="op">-</span> <span class="ident">beginning_park</span>.<span class="ident">elapsed</span>();
    <span class="ident">park_timeout</span>(<span class="ident">timeout</span>);
}<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Athread%3A%3Apark_timeout%3B%0Ause%20std%3A%3Atime%3A%3A%7BInstant%2C%20Duration%7D%3B%0A%0Alet%20timeout%20%3D%20Duration%3A%3Afrom_secs(2)%3B%0Alet%20beginning_park%20%3D%20Instant%3A%3Anow()%3B%0Apark_timeout(timeout)%3B%0A%0Awhile%20beginning_park.elapsed()%20%3C%20timeout%20%7B%0A%20%20%20%20println!(%22restarting%20park_timeout%20after%20%7B%3A%3F%7D%22%2C%20beginning_park.elapsed())%3B%0A%20%20%20%20let%20timeout%20%3D%20timeout%20-%20beginning_park.elapsed()%3B%0A%20%20%20%20park_timeout(timeout)%3B%0A%7D%0A%7D">Run</a></pre>
</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>
                    <dt>+</dt>
                    <dd>Collapse/expand all sections</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 = "std";
    </script>
    <script src="../../main.js"></script>
    <script defer src="../../search-index.js"></script>
</body>
</html>