Sha256: 558ad9bab3f18b79a0d46548aff24288f1c6c5d0581e51559cc2a82cccd0696c

Contents?: true

Size: 831 Bytes

Versions: 7

Compression:

Stored size: 831 Bytes

Contents

use crate::sync::watch;

use loom::future::block_on;
use loom::thread;

#[test]
fn smoke() {
    loom::model(|| {
        let (tx, mut rx1) = watch::channel(1);
        let mut rx2 = rx1.clone();
        let mut rx3 = rx1.clone();
        let mut rx4 = rx1.clone();
        let mut rx5 = rx1.clone();

        let th = thread::spawn(move || {
            tx.send(2).unwrap();
        });

        block_on(rx1.changed()).unwrap();
        assert_eq!(*rx1.borrow(), 2);

        block_on(rx2.changed()).unwrap();
        assert_eq!(*rx2.borrow(), 2);

        block_on(rx3.changed()).unwrap();
        assert_eq!(*rx3.borrow(), 2);

        block_on(rx4.changed()).unwrap();
        assert_eq!(*rx4.borrow(), 2);

        block_on(rx5.changed()).unwrap();
        assert_eq!(*rx5.borrow(), 2);

        th.join().unwrap();
    })
}

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
wasmtime-8.0.0 ./ext/cargo-vendor/tokio-1.27.0/src/sync/tests/loom_watch.rs
wasmtime-7.0.0 ./ext/cargo-vendor/tokio-1.27.0/src/sync/tests/loom_watch.rs
wasmtime-6.0.1 ./ext/cargo-vendor/tokio-1.25.0/src/sync/tests/loom_watch.rs
wasmtime-6.0.0 ./ext/cargo-vendor/tokio-1.25.0/src/sync/tests/loom_watch.rs
wasmtime-5.0.0 ./ext/cargo-vendor/tokio-1.24.2/src/sync/tests/loom_watch.rs
wasmtime-0.4.1 ./ext/cargo-vendor/tokio-1.23.0/src/sync/tests/loom_watch.rs
wasmtime-0.4.0 ./ext/cargo-vendor/tokio-1.23.0/src/sync/tests/loom_watch.rs