Skip to content

Commit 7c9c382

Browse files
valodzkaPavel Valodzka
and
Pavel Valodzka
authored
feat: create heartbeat scheduler with named threads and as daemon (#106)
Co-authored-by: Pavel Valodzka <[email protected]>
1 parent 686ac08 commit 7c9c382

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

Diff for: src/main/java/io/socket/engineio/client/Socket.java

+17-11
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,9 @@
44

55
import java.net.URI;
66
import java.net.URISyntaxException;
7-
import java.util.ArrayList;
8-
import java.util.Arrays;
9-
import java.util.HashMap;
10-
import java.util.LinkedList;
11-
import java.util.List;
12-
import java.util.Map;
13-
import java.util.concurrent.Executors;
14-
import java.util.concurrent.Future;
15-
import java.util.concurrent.ScheduledExecutorService;
16-
import java.util.concurrent.TimeUnit;
7+
import java.util.*;
8+
import java.util.concurrent.*;
9+
import java.util.concurrent.atomic.AtomicInteger;
1710
import java.util.logging.Level;
1811
import java.util.logging.Logger;
1912

@@ -37,6 +30,8 @@ public class Socket extends Emitter {
3730

3831
private static final Logger logger = Logger.getLogger(Socket.class.getName());
3932

33+
private static final AtomicInteger HEARTBEAT_THREAD_COUNTER = new AtomicInteger();
34+
4035
private static final String PROBE_ERROR = "probe error";
4136

4237

@@ -848,11 +843,22 @@ public String id() {
848843

849844
private ScheduledExecutorService getHeartbeatScheduler() {
850845
if (this.heartbeatScheduler == null || this.heartbeatScheduler.isShutdown()) {
851-
this.heartbeatScheduler = Executors.newSingleThreadScheduledExecutor();
846+
this.heartbeatScheduler = createHeartbeatScheduler();
852847
}
853848
return this.heartbeatScheduler;
854849
}
855850

851+
private ScheduledExecutorService createHeartbeatScheduler() {
852+
return Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
853+
@Override
854+
public Thread newThread(Runnable r) {
855+
Thread thread = new Thread(r, "engine.io-client.heartbeat-" + HEARTBEAT_THREAD_COUNTER.getAndIncrement());
856+
thread.setDaemon(true);
857+
return thread;
858+
}
859+
});
860+
}
861+
856862
public static class Options extends Transport.Options {
857863

858864
/**

0 commit comments

Comments
 (0)