Quellcodebibliothek
Statistik
Leitseite
products
/
Sources
/
formale Sprachen
/
C
/
Firefox
/
third_party
/
rust
/
object
/
tests
/
round_trip
/ (
Firefox Browser
Version 136.0.1
©
) Datei vom 10.2.2025 mit Größe 6 kB
Quelle thread_id.rs
Sprache: Rust
use
std::num::NonZeroU64;
#[
derive(Eq, PartialEq, Clone, Copy, Hash, Debug)]
pub
(
crate
)
struct
ThreadId(NonZeroU64);
impl
ThreadId {
pub
(
crate
)
fn
next() ->
Self
{
use
crate
::loom::sync::atomic::{Ordering::Relaxed, StaticAtomicU64};
static
NEXT_ID: StaticAtomicU64 = StaticAtomicU64::new(
0
);
let
mut
last = NEXT_ID.load(Relaxed);
loop
{
let
id =
match
last.checked_add(
1
) {
Some(id) => id,
None => exhausted(),
};
match
NEXT_ID.compare_exchange_weak(last, id, Relaxed, Relaxed) {
Ok(_) =>
return
ThreadId(NonZeroU64::new(id).unwrap()),
Err(id) => last = id,
}
}
}
}
#[
cold]
#[
allow(dead_code)]
fn
exhausted() -> ! {
panic!(
"failed to generate unique thread ID: bitspace exhausted"
)
}
Messung V0.5 in Prozent
C=88
H=95
G=91
¤
Dauer der Verarbeitung: 0.10 Sekunden (vorverarbeitet am 2026-06-19)
¤
*© Formatika GbR, Deutschland
Wurzel
Suchen
PVS Prover
Isabelle Prover
NIST Cobol Testsuite
Cephes Mathematical Library
Vienna Development Method
Haftungshinweis
Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
sprechenden Kalenders
2026-07-12