Sha256: 54321d0a1a21e65ddd7e958b751480bb35b93d9d4ca11a218043e684e0d6bfff

Contents?: true

Size: 1.04 KB

Versions: 24

Compression:

Stored size: 1.04 KB

Contents

use crate::sync::mpsc::list;

use loom::thread;
use std::sync::Arc;

#[test]
fn smoke() {
    use crate::sync::mpsc::block::Read;

    const NUM_TX: usize = 2;
    const NUM_MSG: usize = 2;

    loom::model(|| {
        let (tx, mut rx) = list::channel();
        let tx = Arc::new(tx);

        for th in 0..NUM_TX {
            let tx = tx.clone();

            thread::spawn(move || {
                for i in 0..NUM_MSG {
                    tx.push((th, i));
                }
            });
        }

        let mut next = vec![0; NUM_TX];

        loop {
            match rx.pop(&tx) {
                Some(Read::Value((th, v))) => {
                    assert_eq!(v, next[th]);
                    next[th] += 1;

                    if next.iter().all(|&i| i == NUM_MSG) {
                        break;
                    }
                }
                Some(Read::Closed) => {
                    panic!();
                }
                None => {
                    thread::yield_now();
                }
            }
        }
    });
}

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
wasmtime-30.0.2 ./ext/cargo-vendor/tokio-1.43.0/src/sync/tests/loom_list.rs
wasmtime-29.0.0 ./ext/cargo-vendor/tokio-1.43.0/src/sync/tests/loom_list.rs
wasmtime-28.0.0 ./ext/cargo-vendor/tokio-1.43.0/src/sync/tests/loom_list.rs
wasmtime-27.0.0 ./ext/cargo-vendor/tokio-1.41.1/src/sync/tests/loom_list.rs
wasmtime-26.0.0 ./ext/cargo-vendor/tokio-1.41.0/src/sync/tests/loom_list.rs
wasmtime-25.0.2 ./ext/cargo-vendor/tokio-1.40.0/src/sync/tests/loom_list.rs
wasmtime-25.0.1 ./ext/cargo-vendor/tokio-1.39.3/src/sync/tests/loom_list.rs
wasmtime-25.0.0 ./ext/cargo-vendor/tokio-1.39.3/src/sync/tests/loom_list.rs
wasmtime-24.0.0 ./ext/cargo-vendor/tokio-1.39.3/src/sync/tests/loom_list.rs
wasmtime-23.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/sync/tests/loom_list.rs
wasmtime-22.0.0 ./ext/cargo-vendor/tokio-1.36.0/src/sync/tests/loom_list.rs
wasmtime-21.0.1 ./ext/cargo-vendor/tokio-1.36.0/src/sync/tests/loom_list.rs
wasmtime-20.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/sync/tests/loom_list.rs
wasmtime-20.0.0 ./ext/cargo-vendor/tokio-1.36.0/src/sync/tests/loom_list.rs
wasmtime-18.0.3 ./ext/cargo-vendor/tokio-1.36.0/src/sync/tests/loom_list.rs
wasmtime-17.0.1 ./ext/cargo-vendor/tokio-1.35.1/src/sync/tests/loom_list.rs
wasmtime-17.0.0 ./ext/cargo-vendor/tokio-1.35.1/src/sync/tests/loom_list.rs
wasmtime-16.0.0 ./ext/cargo-vendor/tokio-1.35.1/src/sync/tests/loom_list.rs
wasmtime-15.0.1 ./ext/cargo-vendor/tokio-1.35.1/src/sync/tests/loom_list.rs
wasmtime-15.0.0 ./ext/cargo-vendor/tokio-1.35.1/src/sync/tests/loom_list.rs