From 1db84efb689d5bd0a988bb527a89921769fbda41 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 23 Feb 2016 10:54:03 -0500 Subject: [PATCH] Revert "Synchronize the mDNS events and timer with the MdnsDiscoveryAgent class instead of the instance object as a workaround for JmDNS issue #49" This reverts commit d92ad050aa4482cdaaf8f7345222da26c31d84f6. --- .../nvstream/mdns/MdnsDiscoveryAgent.java | 55 ++++++++----------- 1 file changed, 22 insertions(+), 33 deletions(-) diff --git a/moonlight-common/src/com/limelight/nvstream/mdns/MdnsDiscoveryAgent.java b/moonlight-common/src/com/limelight/nvstream/mdns/MdnsDiscoveryAgent.java index 1b659e54..872cf45c 100644 --- a/moonlight-common/src/com/limelight/nvstream/mdns/MdnsDiscoveryAgent.java +++ b/moonlight-common/src/com/limelight/nvstream/mdns/MdnsDiscoveryAgent.java @@ -28,48 +28,37 @@ public class MdnsDiscoveryAgent { private boolean stop; private ServiceListener nvstreamListener = new ServiceListener() { public void serviceAdded(ServiceEvent event) { - synchronized (MdnsDiscoveryAgent.class) { - if (resolver == null) { - LimeLog.warning("mDNS callback invoked without a resolver!"); - return; - } - - LimeLog.info("mDNS: Machine appeared: "+event.getInfo().getName()); - - ServiceInfo[] infos = resolver.getServiceInfos(SERVICE_TYPE, event.getInfo().getName(), 500); - if (infos == null || infos.length == 0) { - // This machine is pending resolution - pendingResolution.add(event.getInfo().getName()); - return; - } - - LimeLog.info("mDNS: Resolved (blocking) with "+infos.length+" service entries"); - handleResolvedServiceInfo(infos[0]); + LimeLog.info("mDNS: Machine appeared: "+event.getInfo().getName()); + + ServiceInfo[] infos = resolver.getServiceInfos(SERVICE_TYPE, event.getInfo().getName(), 500); + if (infos == null || infos.length == 0) { + // This machine is pending resolution + pendingResolution.add(event.getInfo().getName()); + return; } + + LimeLog.info("mDNS: Resolved (blocking) with "+infos.length+" service entries"); + handleResolvedServiceInfo(infos[0]); } public void serviceRemoved(ServiceEvent event) { - synchronized (MdnsDiscoveryAgent.class) { - LimeLog.info("mDNS: Machine disappeared: "+event.getInfo().getName()); - - Inet4Address addrs[] = event.getInfo().getInet4Addresses(); - for (Inet4Address addr : addrs) { - synchronized (computers) { - MdnsComputer computer = computers.remove(addr); - if (computer != null) { - listener.notifyComputerRemoved(computer); - break; - } + LimeLog.info("mDNS: Machine disappeared: "+event.getInfo().getName()); + + Inet4Address addrs[] = event.getInfo().getInet4Addresses(); + for (Inet4Address addr : addrs) { + synchronized (computers) { + MdnsComputer computer = computers.remove(addr); + if (computer != null) { + listener.notifyComputerRemoved(computer); + break; } } } } public void serviceResolved(ServiceEvent event) { - synchronized (MdnsDiscoveryAgent.class) { - LimeLog.info("mDNS: Machine resolved (callback): "+event.getInfo().getName()); - handleResolvedServiceInfo(event.getInfo()); - } + LimeLog.info("mDNS: Machine resolved (callback): "+event.getInfo().getName()); + handleResolvedServiceInfo(event.getInfo()); } }; @@ -124,7 +113,7 @@ public class MdnsDiscoveryAgent { t.schedule(new TimerTask() { @Override public void run() { - synchronized (MdnsDiscoveryAgent.class) { + synchronized (MdnsDiscoveryAgent.this) { // Stop if requested if (stop) { // There will be no further timer invocations now