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_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(root_28_0_sender.clone());
- }
- }
- {
- 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();
- }));
- }
- threads.push(thread::spawn(move || {
- let root_28_0 = IncomingPort {
- receiver: root_28_0_receiver
- };
- nodes::NodeGRootG28 {
- port_root_28_0: root_28_0,
- }.run();
- }));
- threads.push(thread::spawn(move || {
- root_27_0_senders_arc.lock();
- }));
- return threads;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement