
[英]Async sockets always reading 0 bytes when sending a lot of packets at once
[英]Rust: Sending a parking_lot::RwLockReadGuard
这是我尝试编写的简化代码:
use parking_lot::RwLock;
let buffers: Box<[RwLock<MyBuffer>]> = Box::new([ ... ]);
let (sender, receiver) = std::sync::mpsc::channel();
thread::spawn(move || {
let guard = buffers[ ... ].write().unwrap();
expensive_computation(&mut *guard);
sender.send(guard.downgrade()).unwrap();
});
for message in receiver.iter() {
// Handle the message
}
但是, RwLockReadGuard
不是Send
,因此此代码无法编译。
如何解决跨线程边界发送RwLockReadGuard
的问题?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.