Rust - как сделать unset/clear вектора в thread?
В дочернем тред в вектор добавляется строка. В родительском вектор читается и должен очищаться, чтобы снова в дочернем тред наполнится новыми данными. Сделал реализацию, но данные в векторе добавляются, но не удаляются. Как сделать очистку или пересоздать вектор в данном случае?
use std::io::{stdin, Read};
use std::sync::{Arc, Mutex};
use std::thread;
use std::time::Duration;
fn main() {
let influx_data = Vec::new();
let data_owner = Arc::new(Mutex::new(influx_data.clone()));
let data_for_thread = data_owner.clone();
//second thread
thread::spawn(move || {
let mut character = [0];
while let Ok(_) = stdin().read(&mut character) {
if character[0] == b'\n' {
let name1 = String::from("Windy");
data_for_thread
.lock()
.unwrap()
.push(name1);
println!("counter=7\n");
}
}
thread::sleep(Duration::from_secs(1));
});
//main thread
loop {
println!("{:?}", data_owner);
thread::sleep(Duration::from_secs(10));
}
}