Guest User

Untitled

a guest
Jun 25th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. extern crate futures;
  2. extern crate tokio;
  3.  
  4. use futures::channel::mpsc::Receiver;
  5. use std::collections::HashMap;
  6. use std::io::BufReader;
  7. use std::sync::{Arc, RwLock};
  8. use tokio::net::TcpStream;
  9. use tokio::prelude::future::{loop_fn, Loop};
  10.  
  11. fn example() {
  12. let clients: Arc<RwLock<HashMap<String, TcpStream>>> = Arc::new(RwLock::new(HashMap::new()));
  13.  
  14. let clients_iter_combo = clients;
  15. let clients_iter_combo = (
  16. clients_iter_combo,
  17. clients_iter_combo.read().unwrap().iter(),
  18. );
  19. let broadcast = loop_fn(clients_iter_combo, |(clients, mut clients_iter)| {
  20. let (id, client) = match clients_iter.next() {
  21. Some(item) => item,
  22. None => return Ok(Loop::Break(())),
  23. };
  24. Ok(Loop::Continue((clients, clients_iter)))
  25. });
  26. tokio::spawn(broadcast);
  27. }
  28.  
  29. fn main() {}
Add Comment
Please, Sign In to add comment