Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 2.44 KB | None | 0 0
  1. use std::thread;
  2. use std::sync::mpsc::channel;
  3. use std::sync::mpsc::Sender;
  4. use std::sync::mpsc::Receiver;
  5. use std::sync::Arc;
  6. use std::sync::Mutex;
  7. use eveamcp::OutgoingPort;
  8. use eveamcp::IncomingPort;
  9. use structs::*;
  10. use nodes;
  11.  
  12. pub fn init() -> Vec<thread::JoinHandle<()>> {
  13.     let mut threads = vec![];
  14.  
  15.     let (root_28_0_sender, root_28_0_receiver) : (Sender<ParsedEthernet>, Receiver<ParsedEthernet>) = channel();
  16.     let (root_31_0_sender, root_31_0_receiver) : (Sender<ParsedEthernet>, Receiver<ParsedEthernet>) = channel();
  17.  
  18.     let root_27_0_senders_arc = Arc::new(Mutex::new(vec!()));
  19.     {
  20.         let root_27_0_senders_arc = root_27_0_senders_arc.clone();
  21.         {
  22.             let ref mut root_27_0_senders = *(root_27_0_senders_arc.lock().unwrap());
  23.             root_27_0_senders.push(vec![root_28_0_sender.clone()]);
  24.             root_27_0_senders.push(vec![root_31_0_sender.clone()]);
  25.         }
  26.     }
  27.     let root_28_0_receivers_arc = Arc::new(Mutex::new(vec!()));
  28.     {
  29.             let ref mut root_28_0_receivers = *(root_28_0_receivers_arc.lock().unwrap());
  30.             root_28_0_receivers.push(root_28_0_receiver);
  31.     }
  32.     let root_31_0_receivers_arc = Arc::new(Mutex::new(vec!()));
  33.     {
  34.             let ref mut root_31_0_receivers = *(root_31_0_receivers_arc.lock().unwrap());
  35.             root_31_0_receivers.push(root_31_0_receiver);
  36.     }
  37.     {
  38.         let root_27_0_senders_arc = root_27_0_senders_arc.clone();
  39.         threads.push(thread::spawn(move || {
  40.             let root_27_0 = OutgoingPort {
  41.                 senders: root_27_0_senders_arc
  42.             };
  43.             nodes::NodeGRootG27 {
  44.                 port_root_27_0: root_27_0,
  45.             }.run();
  46.         }));
  47.     }
  48.     {
  49.         let root_28_0_receivers_arc = root_28_0_receivers_arc.clone();
  50.         threads.push(thread::spawn(move || {
  51.             let root_28_0 = IncomingPort {
  52.                 receivers: root_28_0_receivers_arc
  53.             };
  54.             nodes::NodeGRootG28 {
  55.                 port_root_28_0: root_28_0,
  56.             }.run();
  57.         }));
  58.     }
  59.     {
  60.         let root_31_0_receivers_arc = root_31_0_receivers_arc.clone();
  61.         threads.push(thread::spawn(move || {
  62.             let root_31_0 = IncomingPort {
  63.                 receivers: root_31_0_receivers_arc
  64.             };
  65.             nodes::NodeGRootG31 {
  66.                 port_root_31_0: root_31_0,
  67.             }.run();
  68.         }));
  69.     }
  70.  
  71.  
  72.     return threads;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement