-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Closed
Labels
A-diagnosticsArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsC-enhancementCategory: An issue proposing an enhancement or a PR with one.Category: An issue proposing an enhancement or a PR with one.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
These type are very hard to read~
😪😪
`std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>` cannot be sent between threads safely
`std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>` cannot be sent between threads safely
help: the trait `std::marker::Send` is not implemented for `std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>`
note: required because of the requirements on the impl of `std::marker::Send` for `&mut std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>`
note: required because it appears within the type `[closure@src/main.rs:115:31: 142:22 p:&mut std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>]`
note: required because it appears within the type `futures::future::chain::Chain<std::boxed::Box<dyn futures::Future<Error = websocket::WebSocketError, Item = (tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>, hyper::header::Headers)> + std::marker::Send>, futures::AndThen<futures::stream::Forward<futures::stream::FilterMap<futures::stream::TakeWhile<futures::stream::SplitStream<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>, [closure@src/main.rs:122:41: 122:62], std::result::Result<bool, websocket::WebSocketError>>, [closure@src/main.rs:123:41: 130:30]>, std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>, futures::sink::Send<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>, [closure@src/main.rs:141:39: 141:87]>, [closure@src/main.rs:115:31: 142:22 p:&mut std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>]>`
note: required because it appears within the type `futures::AndThen<std::boxed::Box<dyn futures::Future<Error = websocket::WebSocketError, Item = (tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>, hyper::header::Headers)> + std::marker::Send>, futures::AndThen<futures::stream::Forward<futures::stream::FilterMap<futures::stream::TakeWhile<futures::stream::SplitStream<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>, [closure@src/main.rs:122:41: 122:62], std::result::Result<bool, websocket::WebSocketError>>, [closure@src/main.rs:123:41: 130:30]>, std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>, futures::sink::Send<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>, [closure@src/main.rs:141:39: 141:87]>, [closure@src/main.rs:115:31: 142:22 p:&mut std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>]>`
note: required because it appears within the type `futures::MapErr<futures::AndThen<std::boxed::Box<dyn futures::Future<Error = websocket::WebSocketError, Item = (tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>, hyper::header::Headers)> + std::marker::Send>, futures::AndThen<futures::stream::Forward<futures::stream::FilterMap<futures::stream::TakeWhile<futures::stream::SplitStream<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>, [closure@src/main.rs:122:41: 122:62], std::result::Result<bool, websocket::WebSocketError>>, [closure@src/main.rs:123:41: 130:30]>, std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>, futures::sink::Send<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>, [closure@src/main.rs:141:39: 141:87]>, [closure@src/main.rs:115:31: 142:22 p:&mut std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>]>, [closure@src/main.rs:145:31: 145:57]>`
note: required because it appears within the type `futures::Map<futures::MapErr<futures::AndThen<std::boxed::Box<dyn futures::Future<Error = websocket::WebSocketError, Item = (tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>, hyper::header::Headers)> + std::marker::Send>, futures::AndThen<futures::stream::Forward<futures::stream::FilterMap<futures::stream::TakeWhile<futures::stream::SplitStream<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>, [closure@src/main.rs:122:41: 122:62], std::result::Result<bool, websocket::WebSocketError>>, [closure@src/main.rs:123:41: 130:30]>, std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>, futures::sink::Send<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>, [closure@src/main.rs:141:39: 141:87]>, [closure@src/main.rs:115:31: 142:22 p:&mut std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>]>, [closure@src/main.rs:145:31: 145:57]>, [closure@src/main.rs:146:30: 146:63]>`rustc(E0277)
main.rs(144, 26): `std::sync::MutexGuard<'_, std::boxed::Box<std::collections::HashMap<u32, std::sync::Arc<std::boxed::Box<futures::stream::SplitSink<tokio::codec::Framed<tokio::net::TcpStream, websocket::async::MessageCodec<websocket::OwnedMessage>>>>>>>>` cannot be sent between threads safely
Sharparamofzo
Metadata
Metadata
Assignees
Labels
A-diagnosticsArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsC-enhancementCategory: An issue proposing an enhancement or a PR with one.Category: An issue proposing an enhancement or a PR with one.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.