Skip to content

Commit 52c829f

Browse files
committed
Wrap the discoverers into separate threads
Fixes #6350 (the regression was introduced with b2241da ) Thanks git-bisect :)
1 parent 1f9d99b commit 52c829f

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

arduino-core/src/cc/arduino/packages/Discovery.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
import java.util.List;
3333

34-
public interface Discovery {
34+
public interface Discovery extends Runnable {
3535

3636
/**
3737
* Start discovery service

arduino-core/src/cc/arduino/packages/DiscoveryManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public DiscoveryManager() {
5151
// Start all discoverers
5252
for (Discovery d : discoverers) {
5353
try {
54-
d.start();
54+
new Thread(d).start();
5555
} catch (Exception e) {
5656
System.err.println(tr("Error starting discovery method: ") + d.getClass());
5757
e.printStackTrace();

arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
import cc.arduino.packages.discoverers.network.BoardReachabilityFilter;
4141

42-
public class NetworkDiscovery implements Discovery, ServiceListener {
42+
public class NetworkDiscovery implements Discovery, ServiceListener, Runnable {
4343

4444
private final List<BoardPort> reachableBoardPorts = new LinkedList<>();
4545
private final List<BoardPort> boardPortsDiscoveredWithJmDNS = new LinkedList<>();
@@ -138,6 +138,11 @@ public NetworkDiscovery() {
138138

139139
}
140140

141+
@Override
142+
public void run() {
143+
start();
144+
}
145+
141146
@Override
142147
public void start() {
143148
jmdns = JmmDNS.Factory.getInstance();

arduino-core/src/cc/arduino/packages/discoverers/SerialDiscovery.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
import java.util.List;
3838
import java.util.Timer;
3939

40-
public class SerialDiscovery implements Discovery {
40+
public class SerialDiscovery implements Discovery, Runnable {
4141

4242
private Timer serialBoardsListerTimer;
4343
private final List<BoardPort> serialBoardPorts;
@@ -85,6 +85,11 @@ public void setUploadInProgress(boolean param) {
8585

8686
public void pausePolling(boolean param) { serialBoardsLister.pausePolling = param;}
8787

88+
@Override
89+
public void run() {
90+
start();
91+
}
92+
8893
@Override
8994
public void start() {
9095
this.serialBoardsListerTimer = new Timer(SerialBoardsLister.class.getName());

0 commit comments

Comments
 (0)