Skip to content

Instantly share code, notes, and snippets.

@xbee
Created August 3, 2019 04:47
Show Gist options
  • Select an option

  • Save xbee/ac955ba0011d66a991ac2e047a46df90 to your computer and use it in GitHub Desktop.

Select an option

Save xbee/ac955ba0011d66a991ac2e047a46df90 to your computer and use it in GitHub Desktop.

Revisions

  1. xbee created this gist Aug 3, 2019.
    24 changes: 24 additions & 0 deletions single.rs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    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);
    }