simplify client Vec management

This commit is contained in:
2020-10-22 12:23:08 -07:00
parent 117979704c
commit 4f59b256f5

View File

@@ -29,8 +29,7 @@ async fn main() {
pretty_env_logger::init_timed();
let clients = Arc::new(Mutex::new(SmallVec::new()));
let clients_filter = clients.clone();
let clients_filter = warp::any().map(move || clients_filter.clone());
let events_clients = clients.clone();
let gpio = Gpio::new().expect("gpio init");
let mut pin = gpio.get(BUTTON_PIN).expect("pin init").into_input_pullup();
@@ -47,11 +46,10 @@ async fn main() {
// GET /events
let events = warp::path!("events")
.and(warp::get())
.and(clients_filter)
.map(|clients: Arc<Mutex<SmallVec<_>>>| {
.map(move || {
info!("GET /events");
let (tx, rx) = mpsc::channel(1);
clients.lock().unwrap().push(tx);
events_clients.lock().unwrap().push(tx);
let stream = stream::select(
interval(Duration::from_secs(5)).map(move |_| {