RosettaCodeData/Task/Determine-if-only-one-instance-is-running/Rust/determine-if-only-one-instance-is-running.rust
2015-11-18 06:14:39 +00:00

24 lines
504 B
Text

use std::net::TcpListener;
fn create_app_lock(port: u16) -> TcpListener {
match TcpListener::bind(("0.0.0.0", port)) {
Ok(socket) => {
socket
},
Err(_) => {
panic!("Couldn't lock port {}: another instance already running?", port);
}
}
}
fn remove_app_lock(socket: TcpListener) {
drop(socket);
}
fn main() {
let lock_socket = create_app_lock(12345);
// ...
// your code here
// ...
remove_app_lock(lock_socket);
}