simplify client Vec management
This commit is contained in:
@@ -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 |_| {
|
||||
|
||||
Reference in New Issue
Block a user