You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
827 B
30 lines
827 B
extern crate serde; |
|
extern crate serde_json; |
|
|
|
use std::collections::HashMap; |
|
use std::sync::Arc; |
|
use std::sync::RwLock; |
|
use std::thread; |
|
use swayr::demon; |
|
use swayr::ipc; |
|
|
|
fn main() { |
|
let con_props: Arc<RwLock<HashMap<ipc::Id, ipc::ConProps>>> = |
|
Arc::new(RwLock::new(HashMap::new())); |
|
let con_props_for_ev_handler = con_props.clone(); |
|
|
|
let subscriber_handle = thread::spawn(move || { |
|
demon::monitor_con_events(con_props_for_ev_handler) |
|
}); |
|
|
|
match demon::serve_client_requests(con_props) { |
|
Ok(()) => { |
|
let subscriber_result = subscriber_handle.join(); |
|
match subscriber_result { |
|
Ok(()) => println!("Subscriber thread shut down cleanly."), |
|
Err(err) => panic!(err), |
|
} |
|
} |
|
Err(err) => panic!(err), |
|
} |
|
}
|
|
|