Sha256: fac610e464660c196a35ce15a46c9ebf537d3f3475cfc633e58c76c25eb558fe

Contents?: true

Size: 1 KB

Versions: 83

Compression:

Stored size: 1 KB

Contents

use crate::runtime::park;
use crate::runtime::tests::loom_oneshot as oneshot;
use crate::runtime::{self, Runtime};

#[test]
fn yield_calls_park_before_scheduling_again() {
    // Don't need to check all permutations
    let mut loom = loom::model::Builder::default();
    loom.max_permutations = Some(1);
    loom.check(|| {
        let rt = mk_runtime(2);
        let (tx, rx) = oneshot::channel::<()>();

        rt.spawn(async {
            let tid = loom::thread::current().id();
            let park_count = park::current_thread_park_count();

            crate::task::yield_now().await;

            if tid == loom::thread::current().id() {
                let new_park_count = park::current_thread_park_count();
                assert_eq!(park_count + 1, new_park_count);
            }

            tx.send(());
        });

        rx.recv();
    });
}

fn mk_runtime(num_threads: usize) -> Runtime {
    runtime::Builder::new_multi_thread()
        .worker_threads(num_threads)
        .build()
        .unwrap()
}

Version data entries

83 entries across 39 versions & 1 rubygems

Version Path
wasmtime-30.0.2 ./ext/cargo-vendor/tokio-1.43.0/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-29.0.0 ./ext/cargo-vendor/tokio-1.43.0/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-28.0.0 ./ext/cargo-vendor/tokio-1.43.0/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-27.0.0 ./ext/cargo-vendor/tokio-1.41.1/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-26.0.0 ./ext/cargo-vendor/tokio-1.41.0/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-25.0.2 ./ext/cargo-vendor/tokio-1.40.0/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-25.0.1 ./ext/cargo-vendor/tokio-1.39.3/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-25.0.0 ./ext/cargo-vendor/tokio-1.39.3/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-24.0.0 ./ext/cargo-vendor/tokio-1.39.3/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-23.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_multi_thread_alt/yield_now.rs
wasmtime-23.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_current_thread/yield_now.rs
wasmtime-23.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-22.0.0 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_multi_thread_alt/yield_now.rs
wasmtime-22.0.0 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_current_thread/yield_now.rs
wasmtime-22.0.0 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-21.0.1 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_multi_thread_alt/yield_now.rs
wasmtime-21.0.1 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_current_thread/yield_now.rs
wasmtime-21.0.1 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_multi_thread/yield_now.rs
wasmtime-20.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_multi_thread_alt/yield_now.rs
wasmtime-20.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/runtime/tests/loom_current_thread/yield_now.rs