mirror of https://github.com/rust-lang/rust.git
24 lines
455 B
Rust
24 lines
455 B
Rust
|
//@ edition:2018
|
||
|
#![feature(must_not_suspend)]
|
||
|
#![allow(must_not_suspend)]
|
||
|
|
||
|
use std::future::Future;
|
||
|
use std::sync::Mutex;
|
||
|
|
||
|
fn fake_spawn<F: Future + Send + 'static>(f: F) { }
|
||
|
|
||
|
async fn wrong_mutex() {
|
||
|
let m = Mutex::new(1);
|
||
|
{
|
||
|
let mut guard = m.lock().unwrap();
|
||
|
(async { "right"; }).await;
|
||
|
*guard += 1;
|
||
|
}
|
||
|
|
||
|
(async { "wrong"; }).await;
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
fake_spawn(wrong_mutex()); //~ Error future cannot be sent between threads safely
|
||
|
}
|