Skip to content

Commit 51c9e08

Browse files
committed
Using daemon threads for opamp client, as mentioned in pr comments
1 parent 7afe527 commit 51c9e08

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

opamp-client/src/main/java/io/opentelemetry/opamp/client/internal/request/delay/PeriodicTaskExecutor.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.concurrent.Executors;
1010
import java.util.concurrent.ScheduledExecutorService;
1111
import java.util.concurrent.ScheduledFuture;
12+
import java.util.concurrent.ThreadFactory;
1213
import java.util.concurrent.TimeUnit;
1314
import java.util.concurrent.atomic.AtomicReference;
1415
import java.util.concurrent.locks.Lock;
@@ -25,7 +26,8 @@ public final class PeriodicTaskExecutor {
2526

2627
public static PeriodicTaskExecutor create(PeriodicDelay initialPeriodicDelay) {
2728
return new PeriodicTaskExecutor(
28-
Executors.newSingleThreadScheduledExecutor(), initialPeriodicDelay);
29+
Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory()),
30+
initialPeriodicDelay);
2931
}
3032

3133
PeriodicTaskExecutor(
@@ -79,4 +81,19 @@ public void run() {
7981
scheduleNext();
8082
}
8183
}
84+
85+
private static class DaemonThreadFactory implements ThreadFactory {
86+
private final ThreadFactory delegate = Executors.defaultThreadFactory();
87+
88+
@Override
89+
public Thread newThread(@Nonnull Runnable r) {
90+
Thread t = delegate.newThread(r);
91+
try {
92+
t.setDaemon(true);
93+
} catch (SecurityException e) {
94+
// Well, we tried.
95+
}
96+
return t;
97+
}
98+
}
8299
}

0 commit comments

Comments
 (0)