Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::thread;
- use std::sync::mpsc::channel;
- use std::sync::mpsc::Sender;
- use std::sync::mpsc::Receiver;
- use std::sync::Arc;
- use std::sync::Mutex;
- use eveamcp::OutgoingPort;
- use eveamcp::IncomingPort;
- use structs::*;
- use nodes;
- pub fn init() -> Vec<thread::JoinHandle<()>> {
- let mut threads = vec![];
- let (root_28_0_sender, root_28_0_receiver) : (Sender<ParsedEthernet>, Receiver<ParsedEthernet>) = channel();
- let (root_31_0_sender, root_31_0_receiver) : (Sender<ParsedEthernet>, Receiver<ParsedEthernet>) = channel();
- let root_27_0_senders_arc = Arc::new(Mutex::new(vec!()));
- {
- let root_27_0_senders_arc = root_27_0_senders_arc.clone();
- {
- let ref mut root_27_0_senders = *(root_27_0_senders_arc.lock().unwrap());
- root_27_0_senders.push(vec![root_28_0_sender.clone()]);
- root_27_0_senders.push(vec![root_31_0_sender.clone()]);
- }
- }
- let root_28_0_receivers_arc = Arc::new(Mutex::new(vec!()));
- {
- let ref mut root_28_0_receivers = *(root_28_0_receivers_arc.lock().unwrap());
- root_28_0_receivers.push(root_28_0_receiver);
- }
- let root_31_0_receivers_arc = Arc::new(Mutex::new(vec!()));
- {
- let ref mut root_31_0_receivers = *(root_31_0_receivers_arc.lock().unwrap());
- root_31_0_receivers.push(root_31_0_receiver);
- }
- {
- let root_27_0_senders_arc = root_27_0_senders_arc.clone();
- threads.push(thread::spawn(move || {
- let root_27_0 = OutgoingPort {
- senders: root_27_0_senders_arc
- };
- nodes::NodeGRootG27 {
- port_root_27_0: root_27_0,
- }.run();
- }));
- }
- {
- let root_28_0_receivers_arc = root_28_0_receivers_arc.clone();
- threads.push(thread::spawn(move || {
- let root_28_0 = IncomingPort {
- receivers: root_28_0_receivers_arc
- };
- nodes::NodeGRootG28 {
- port_root_28_0: root_28_0,
- }.run();
- }));
- }
- {
- let root_31_0_receivers_arc = root_31_0_receivers_arc.clone();
- threads.push(thread::spawn(move || {
- let root_31_0 = IncomingPort {
- receivers: root_31_0_receivers_arc
- };
- nodes::NodeGRootG31 {
- port_root_31_0: root_31_0,
- }.run();
- }));
- }
- return threads;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement