Files
GopherGate/target/doc/crossbeam_epoch/trait.CompareAndSetOrdering.html
2026-02-26 12:00:21 -05:00

19 lines
12 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="Memory orderings for compare-and-set operations."><title>CompareAndSetOrdering in crossbeam_epoch - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="crossbeam_epoch" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">CompareAndSetOrdering</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../crossbeam_epoch/index.html">crossbeam_<wbr>epoch</a><span class="version">0.9.18</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Compare<wbr>AndSet<wbr>Ordering</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.failure" title="failure">failure</a></li><li><a href="#tymethod.success" title="success">success</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-CompareAndSetOrdering-for-(Ordering,+Ordering)" title="(Ordering, Ordering)">(Ordering, Ordering)</a></li><li><a href="#impl-CompareAndSetOrdering-for-Ordering" title="Ordering">Ordering</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate crossbeam_<wbr>epoch</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">crossbeam_epoch</a></div><h1>Trait <span class="trait">Compare<wbr>AndSet<wbr>Ordering</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/crossbeam_epoch/atomic.rs.html#67-76">Source</a> </span></div><pre class="rust item-decl"><code>pub trait CompareAndSetOrdering {
// Required methods
fn <a href="#tymethod.success" class="fn">success</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.failure" class="fn">failure</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a>;
}</code></pre><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: <code>compare_and_set</code> and <code>compare_and_set_weak</code> that use this trait are deprecated, use <code>compare_exchange</code> or <code>compare_exchange_weak instead</code></span></div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Memory orderings for compare-and-set operations.</p>
<p>A compare-and-set operation can have different memory orderings depending on whether it
succeeds or fails. This trait generalizes different ways of specifying memory orderings.</p>
<p>The two ways of specifying orderings for compare-and-set are:</p>
<ol>
<li>Just one <code>Ordering</code> for the success case. In case of failure, the strongest appropriate
ordering is chosen.</li>
<li>A pair of <code>Ordering</code>s. The first one is for the success case, while the second one is
for the failure case.</li>
</ol>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.success" class="method"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#69">Source</a><h4 class="code-header">fn <a href="#tymethod.success" class="fn">success</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: <code>compare_and_set</code> and <code>compare_and_set_weak</code> that use this trait are deprecated, use <code>compare_exchange</code> or <code>compare_exchange_weak instead</code></span></div></span></summary><div class="docblock"><p>The ordering of the operation when it succeeds.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.failure" class="method"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#75">Source</a><h4 class="code-header">fn <a href="#tymethod.failure" class="fn">failure</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: <code>compare_and_set</code> and <code>compare_and_set_weak</code> that use this trait are deprecated, use <code>compare_exchange</code> or <code>compare_exchange_weak instead</code></span></div></span></summary><div class="docblock"><p>The ordering of the operation when it fails.</p>
<p>The failure ordering cant be <code>Release</code> or <code>AcqRel</code> and must be equivalent or weaker than
the success ordering.</p>
</div></details></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-CompareAndSetOrdering-for-(Ordering,+Ordering)" class="impl"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#92-102">Source</a><a href="#impl-CompareAndSetOrdering-for-(Ordering,+Ordering)" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CompareAndSetOrdering.html" title="trait crossbeam_epoch::CompareAndSetOrdering">CompareAndSetOrdering</a> for (<a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a>, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a>)</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.success" class="method trait-impl"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#94-96">Source</a><a href="#method.success" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.success" class="fn">success</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: <code>compare_and_set</code> and <code>compare_and_set_weak</code> that use this trait are deprecated, use <code>compare_exchange</code> or <code>compare_exchange_weak instead</code></span></div></span></details><details class="toggle method-toggle" open><summary><section id="method.failure" class="method trait-impl"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#99-101">Source</a><a href="#method.failure" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.failure" class="fn">failure</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: <code>compare_and_set</code> and <code>compare_and_set_weak</code> that use this trait are deprecated, use <code>compare_exchange</code> or <code>compare_exchange_weak instead</code></span></div></span></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CompareAndSetOrdering-for-Ordering" class="impl"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#79-89">Source</a><a href="#impl-CompareAndSetOrdering-for-Ordering" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.CompareAndSetOrdering.html" title="trait crossbeam_epoch::CompareAndSetOrdering">CompareAndSetOrdering</a> for <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.success-1" class="method trait-impl"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#81-83">Source</a><a href="#method.success-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.success" class="fn">success</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: <code>compare_and_set</code> and <code>compare_and_set_weak</code> that use this trait are deprecated, use <code>compare_exchange</code> or <code>compare_exchange_weak instead</code></span></div></span></details><details class="toggle method-toggle" open><summary><section id="method.failure-1" class="method trait-impl"><a class="src rightside" href="../src/crossbeam_epoch/atomic.rs.html#86-88">Source</a><a href="#method.failure-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.failure" class="fn">failure</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/sync/atomic/enum.Ordering.html" title="enum core::sync::atomic::Ordering">Ordering</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: <code>compare_and_set</code> and <code>compare_and_set_weak</code> that use this trait are deprecated, use <code>compare_exchange</code> or <code>compare_exchange_weak instead</code></span></div></span></details></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../trait.impl/crossbeam_epoch/atomic/trait.CompareAndSetOrdering.js" data-ignore-extern-crates="core,std" async></script></section></div></main></body></html>