Guest User

Untitled

a guest
May 31st, 2016
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.64 KB | None | 0 0
  1. fn mass_make_par_new(&self, data: &Data) -> Item {
  2.     let mut pool = Pool::new(8);
  3.     pool.scoped(|scope| {
  4.         let mut counter = self.makers.len();
  5.         let (tx, rx) = std::sync::mpsc::channel();
  6.         for maker in self.makers.iter() {
  7.             let tx = tx.clone();
  8.             scope.execute(move || {
  9.                 let make_result = maker.make(data);
  10.                 tx.send(make_result).unwrap();
  11.             });
  12.         }
  13.         let mut result = Item::zero();
  14.         while counter != 0 {
  15.             result = Item::compose(&result, &rx.recv().unwrap());
  16.             counter -= 1;
  17.         }
  18.         result
  19.     })
  20. }
Advertisement
Add Comment
Please, Sign In to add comment