Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  mod.rs

  Sprache: Rust
 

#![cfg_attr(any(not(feature = "full"), loom), allow(unused_imports, dead_code))]

mod atomic_u16;
mod atomic_u32;
mod atomic_u64;
mod atomic_usize;
mod barrier;
mod mutex;
#[cfg(all(feature = "parking_lot", not(miri)))]
mod parking_lot;
mod unsafe_cell;

pub(cratemod cell {
    pub(crateuse super::unsafe_cell::UnsafeCell;
}

#[cfg(any(
    feature = "net",
    feature = "process",
    feature = "signal",
    feature = "sync",
))]
pub(cratemod future {
    pub(crateuse crate::sync::AtomicWaker;
}

pub(cratemod hint {
    pub(crateuse std::hint::spin_loop;
}

pub(cratemod rand {
    use std::collections::hash_map::RandomState;
    use std::hash::{BuildHasher, Hash, Hasher};
    use std::sync::atomic::AtomicU32;
    use std::sync::atomic::Ordering::Relaxed;

    static COUNTER: AtomicU32 = AtomicU32::new(1);

    pub(cratefn seed() -> u64 {
        let rand_state = RandomState::new();

        let mut hasher = rand_state.build_hasher();

        // Hash some unique-ish data to generate some new state
        COUNTER.fetch_add(1, Relaxed).hash(&mut hasher);

        // Get the seed
        hasher.finish()
    }
}

pub(cratemod sync {
    pub(crateuse std::sync::{Arc, Weak};

    // Below, make sure all the feature-influenced types are exported for
    // internal use. Note however that some are not _currently_ named by
    // consuming code.

    #[cfg(all(feature = "parking_lot", not(miri)))]
    #[allow(unused_imports)]
    pub(crateuse crate::loom::std::parking_lot::{
        Condvar, Mutex, MutexGuard, RwLock, RwLockReadGuard, WaitTimeoutResult,
    };

    #[cfg(not(all(feature = "parking_lot", not(miri))))]
    #[allow(unused_imports)]
    pub(crateuse std::sync::{Condvar, MutexGuard, RwLock, RwLockReadGuard, WaitTimeoutResult};

    #[cfg(not(all(feature = "parking_lot", not(miri))))]
    pub(crateuse crate::loom::std::mutex::Mutex;

    pub(cratemod atomic {
        pub(crateuse crate::loom::std::atomic_u16::AtomicU16;
        pub(crateuse crate::loom::std::atomic_u32::AtomicU32;
        pub(crateuse crate::loom::std::atomic_u64::{AtomicU64, StaticAtomicU64};
        pub(crateuse crate::loom::std::atomic_usize::AtomicUsize;

        pub(crateuse std::sync::atomic::{fence, AtomicBool, AtomicPtr, AtomicU8, Ordering};
    }

    pub(crateuse super::barrier::Barrier;
}

pub(cratemod sys {
    #[cfg(feature = "rt-multi-thread")]
    pub(cratefn num_cpus() -> usize {
        use std::num::NonZeroUsize;

        const ENV_WORKER_THREADS: &str = "TOKIO_WORKER_THREADS";

        match std::env::var(ENV_WORKER_THREADS) {
            Ok(s) => {
                let n = s.parse().unwrap_or_else(|e| {
                    panic!(
                        "\"{}\" must be usize, error: {}, value: {}",
                        ENV_WORKER_THREADS, e, s
                    )
                });
                assert!(n > 0"\"{}\" cannot be set to 0", ENV_WORKER_THREADS);
                n
            }
            Err(std::env::VarError::NotPresent) => {
                std::thread::available_parallelism().map_or(1, NonZeroUsize::get)
            }
            Err(std::env::VarError::NotUnicode(e)) => {
                panic!(
                    "\"{}\" must be valid unicode, error: {:?}",
                    ENV_WORKER_THREADS, e
                )
            }
        }
    }

    #[cfg(not(feature = "rt-multi-thread"))]
    pub(cratefn num_cpus() -> usize {
        1
    }
}

pub(cratemod thread {
    #[inline]
    pub(cratefn yield_now() {
        std::hint::spin_loop();
    }

    #[allow(unused_imports)]
    pub(crateuse std::thread::{
        current, panicking, park, park_timeout, sleep, spawn, AccessError, Builder, JoinHandle,
        LocalKey, Result, Thread, ThreadId,
    };
}

Messung V0.5 in Prozent
C=80 H=93 G=86

¤ Dauer der Verarbeitung: 0.12 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:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik