2222import java .util .concurrent .ExecutorService ;
2323import java .util .concurrent .ScheduledExecutorService ;
2424import java .util .concurrent .Executors ;
25+ import java .util .concurrent .ThreadFactory ;
2526import java .util .concurrent .TimeUnit ;
2627import java .util .concurrent .ScheduledFuture ;
2728import java .io .IOException ;
@@ -39,6 +40,7 @@ final class HeartbeatSender {
3940 private final Object monitor = new Object ();
4041
4142 private final FrameHandler frameHandler ;
43+ private final ThreadFactory threadFactory ;
4244
4345 private ScheduledExecutorService executor ;
4446
@@ -48,8 +50,9 @@ final class HeartbeatSender {
4850
4951 private volatile long lastActivityTime ;
5052
51- HeartbeatSender (FrameHandler frameHandler ) {
53+ HeartbeatSender (FrameHandler frameHandler , ThreadFactory threadFactory ) {
5254 this .frameHandler = frameHandler ;
55+ this .threadFactory = threadFactory ;
5356 }
5457
5558 public void signalActivity () {
@@ -86,7 +89,7 @@ public void setHeartbeat(int heartbeatSeconds) {
8689 private ScheduledExecutorService createExecutorIfNecessary () {
8790 synchronized (this .monitor ) {
8891 if (this .executor == null ) {
89- this .executor = Executors .newSingleThreadScheduledExecutor ();
92+ this .executor = Executors .newSingleThreadScheduledExecutor (threadFactory );
9093 }
9194 return this .executor ;
9295 }
0 commit comments