Commit af028406 authored by Florian Quèze's avatar Florian Quèze
Browse files

Bug 1690626 - register the mdns_service thread with the profiler, r=canaltinova.

parent 049c8b3a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2997,6 +2997,7 @@ version = "0.1.0"
dependencies = [
 "byteorder",
 "dns-parser",
 "gecko-profiler",
 "log",
 "socket2",
 "uuid",
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ edition = "2018"
[dependencies]
byteorder = "1.3.1"
dns-parser = "0.8.0"
gecko-profiler = { path = "../../../../../tools/profiler/rust-api" }
log = "0.4"
socket2 = { version = "0.3.9", features = ["reuseport"] }
uuid = { version = "0.8", features = ["v4"] }
+12 −1
Original line number Diff line number Diff line
@@ -204,6 +204,14 @@ fn handle_mdns_socket(
    hosts: &mut HashMap<String, Vec<u8>>,
    pending_queries: &mut HashMap<String, Query>,
) -> bool {

    // Record a simple marker to see how often this is called.
    gecko_profiler::add_untyped_marker(
        "handle_mdns_socket",
        gecko_profiler::gecko_profiler_category!(Network),
        Default::default(),
    );

    match socket.recv_from(&mut buffer) {
        Ok((amt, _)) => {
            if amt > 0 {
@@ -428,8 +436,10 @@ impl MDNSService {
            }
        }

        let builder = thread::Builder::new().name("mdns_service".to_string());
        let thread_name = "mdns_service";
        let builder = thread::Builder::new().name(thread_name.into());
        self.handle = Some(builder.spawn(move || {
            gecko_profiler::register_thread(thread_name);
            let mdns_addr = std::net::SocketAddr::from(([224, 0, 0, 251], port));
            let mut buffer: [u8; 1024] = [0; 1024];
            let mut hosts = HashMap::new();
@@ -503,6 +513,7 @@ impl MDNSService {
                    break;
                }
            }
            gecko_profiler::unregister_thread();
        })?);

        Ok(())