error[E0277]: `MutexGuard<'_, ()>` cannot be sent between threads safely --> $DIR/issue-67893.rs:9:7 | LL | g(issue_67893::run()) | - ^^^^^^^^^^^^^^^^^^ `MutexGuard<'_, ()>` cannot be sent between threads safely | | | required by a bound introduced by this call | ::: $DIR/auxiliary/issue_67893.rs:9:1 | LL | pub async fn run() { | ------------------ within this `impl Future` | = help: within `impl Future`, the trait `Send` is not implemented for `MutexGuard<'_, ()>`, which is required by `impl Future: Send` = note: required because it captures the following types: `Arc>`, `MutexGuard<'_, ()>`, `impl Future` note: required because it's used within this `async` fn body --> $DIR/auxiliary/issue_67893.rs:9:20 | LL | pub async fn run() { | ____________________^ LL | | let x: Arc> = make_arc(); LL | | f(*x.lock().unwrap()).await; LL | | } | |_^ note: required by a bound in `g` --> $DIR/issue-67893.rs:6:14 | LL | fn g(_: impl Send) {} | ^^^^ required by this bound in `g` error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0277`.