diff options
Diffstat (limited to 'components/debugger/lib.rs')
-rw-r--r-- | components/debugger/lib.rs | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/components/debugger/lib.rs b/components/debugger/lib.rs deleted file mode 100644 index b26c843b0aa..00000000000 --- a/components/debugger/lib.rs +++ /dev/null @@ -1,71 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -#[macro_use] -extern crate log; - -use std::thread; -use ws::{self, Builder, CloseCode, Handler, Handshake}; - -enum Message { - ShutdownServer, -} - -pub struct Sender(crossbeam_channel::Sender<Message>); - -struct Connection { - sender: ws::Sender, -} - -impl Handler for Connection { - fn on_open(&mut self, _: Handshake) -> ws::Result<()> { - debug!("Connection opened."); - Ok(()) - } - - fn on_close(&mut self, _: CloseCode, _: &str) { - debug!("Connection closed."); - } - - fn on_message(&mut self, message: ws::Message) -> ws::Result<()> { - self.sender.send(message) - } -} - -pub fn start_server(port: u16) -> Sender { - debug!("Starting server."); - let (sender, receiver) = crossbeam_channel::unbounded(); - thread::Builder::new() - .name("debugger".to_owned()) - .spawn(move || { - let socket = Builder::new() - .build(|sender: ws::Sender| Connection { sender: sender }) - .unwrap(); - let sender = socket.broadcaster(); - thread::Builder::new() - .name("debugger-websocket".to_owned()) - .spawn(move || { - socket.listen(("127.0.0.1", port)).unwrap(); - }) - .expect("Thread spawning failed"); - while let Ok(message) = receiver.recv() { - match message { - Message::ShutdownServer => { - break; - }, - } - } - sender.shutdown().unwrap(); - }) - .expect("Thread spawning failed"); - Sender(sender) -} - -pub fn shutdown_server(sender: &Sender) { - debug!("Shutting down server."); - let &Sender(ref sender) = sender; - if let Err(_) = sender.send(Message::ShutdownServer) { - warn!("Failed to shut down server."); - } -} |