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));
    }
}

Ответы (0 шт):