1 year ago
#378602
hkBst
How can I send a hashmap over a channel?
I want to send a hashmap over a channel:
use std::collections::HashMap;
use std::sync::mpsc;
use std::thread;
pub fn frequency(input: &[&str]) {
let handles = vec![];
let (tx, rx) = mpsc::channel();
for txts in input {
let handle = thread::spawn(|| {
tx.send(HashMap::new());
});
handles.push(handle);
}
}
but the compiler won't let me:
error[E0277]: `Sender<HashMap<_, _>>` cannot be shared between threads safely
--> src/lib.rs:9:22
|
9 | let handle = thread::spawn(|| {
| ^^^^^^^^^^^^^ `Sender<HashMap<_, _>>` cannot be shared between threads safely
|
= help: the trait `Sync` is not implemented for `Sender<HashMap<_, _>>`
= note: required because of the requirements on the impl of `Send` for `&Sender<HashMap<_, _>>`
= note: required because it appears within the type `[closure@src/lib.rs:9:36: 11:10]`
note: required by a bound in `spawn`
even though there are Send and Sync implementations for HashMap.
How can I send a hashmap over a channel?
multithreading
rust
hashmap
channel
0 Answers
Your Answer