mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
error: future cannot be sent between threads safely
 | 
						|
  --> $DIR/issue-86507.rs:20:13
 | 
						|
   |
 | 
						|
LL | /             Box::pin(
 | 
						|
LL | |                 async move {
 | 
						|
LL | |                     let x = x;
 | 
						|
LL | |                 }
 | 
						|
LL | |             )
 | 
						|
   | |_____________^ future created by async block is not `Send`
 | 
						|
   |
 | 
						|
   = note: consider using `std::sync::Arc<T>`; for more information visit <https://doc.rust-lang.org/book/ch16-03-shared-state.html>
 | 
						|
note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
 | 
						|
  --> $DIR/issue-86507.rs:22:29
 | 
						|
   |
 | 
						|
LL |                     let x = x;
 | 
						|
   |                             ^ has type `&T` which is not `Send`, because `T` is not `Sync`
 | 
						|
   = note: required for the cast from `Pin<Box<[async block@$DIR/issue-86507.rs:21:17: 23:18]>>` to `Pin<Box<(dyn Future<Output = ()> + Send + 'async_trait)>>`
 | 
						|
help: consider further restricting this bound
 | 
						|
   |
 | 
						|
LL |     fn bar<'me, 'async_trait, T: Send + std::marker::Sync>(x: &'me T)
 | 
						|
   |                                       +++++++++++++++++++
 | 
						|
 | 
						|
error: aborting due to previous error
 | 
						|
 |