Отправка сообщения прекращения работникам пула потоков в одном цикле for в Rust - PullRequest
0 голосов
/ 28 сентября 2019

Вопрос из книги Rust в главе 20, в которой перечислены 20-25, почему я не могу отправить сообщение завершения в том же цикле for сразу после того, как убедился, что рабочий поток завершил вызовприсоединиться()?В журнале должен быть хотя бы один раз зарегистрировано, что работнику было приказано прекратить, почему цикл for останавливается после циклического прохождения через первого работника?

impl Drop for ThreadPool {
  fn drop(&mut self){
        println!("Sending terminate message to all workers.");

        println!("Shutting down all workers.");

        for worker in &mut self.workers {
            println!("Shutting down worker {}", worker.id);

            if let Some(thread) = worker.thread.take() {
                thread.join().unwrap();
            }
            self.sender.send(Message::Terminate).unwrap(); //Not sending?

        }
    }
}
...