Skip to content

Commit 564ce4a

Browse files
committed
Switch to use NewThreadScheduler.RxThreadFactory
1 parent 7ea8e4f commit 564ce4a

File tree

1 file changed

+10
-23
lines changed

1 file changed

+10
-23
lines changed

rxjava-core/src/main/java/rx/schedulers/CachedThreadScheduler.java

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,17 @@
2424
import java.util.Iterator;
2525
import java.util.concurrent.*;
2626
import java.util.concurrent.atomic.AtomicBoolean;
27-
import java.util.concurrent.atomic.AtomicInteger;
2827

2928
/* package */class CachedThreadScheduler extends Scheduler {
30-
private static final class CachedWorkerPool {
31-
final ThreadFactory factory = new ThreadFactory() {
32-
final AtomicInteger counter = new AtomicInteger();
33-
34-
@Override
35-
public Thread newThread(Runnable r) {
36-
Thread t = new Thread(r, "RxCachedThreadScheduler-" + counter.incrementAndGet());
37-
t.setDaemon(true);
38-
return t;
39-
}
40-
};
29+
private static final String WORKER_THREAD_NAME_PREFIX = "RxCachedThreadScheduler-";
30+
private static final NewThreadScheduler.RxThreadFactory WORKER_THREAD_FACTORY =
31+
new NewThreadScheduler.RxThreadFactory(WORKER_THREAD_NAME_PREFIX);
32+
33+
private static final String EVICTOR_THREAD_NAME_PREFIX = "RxCachedWorkerPoolEvictor-";
34+
private static final NewThreadScheduler.RxThreadFactory EVICTOR_THREAD_FACTORY =
35+
new NewThreadScheduler.RxThreadFactory(EVICTOR_THREAD_NAME_PREFIX);
4136

37+
private static final class CachedWorkerPool {
4238
private final long keepAliveTime;
4339
private final ConcurrentLinkedQueue<PoolWorker> expiringQueue;
4440
private final ScheduledExecutorService evictExpiredWorkerExecutor;
@@ -47,16 +43,7 @@ public Thread newThread(Runnable r) {
4743
this.keepAliveTime = unit.toNanos(keepAliveTime);
4844
this.expiringQueue = new ConcurrentLinkedQueue<PoolWorker>();
4945

50-
evictExpiredWorkerExecutor = Executors.newScheduledThreadPool(1, new ThreadFactory() {
51-
final AtomicInteger counter = new AtomicInteger();
52-
53-
@Override
54-
public Thread newThread(Runnable r) {
55-
Thread t = new Thread(r, "RxCachedWorkerPoolEvictor-" + counter.incrementAndGet());
56-
t.setDaemon(true);
57-
return t;
58-
}
59-
});
46+
evictExpiredWorkerExecutor = Executors.newScheduledThreadPool(1, EVICTOR_THREAD_FACTORY);
6047
evictExpiredWorkerExecutor.scheduleWithFixedDelay(
6148
new Runnable() {
6249
@Override
@@ -80,7 +67,7 @@ PoolWorker get() {
8067
}
8168

8269
// No cached worker found, so create a new one.
83-
return new PoolWorker(factory);
70+
return new PoolWorker(WORKER_THREAD_FACTORY);
8471
}
8572

8673
void release(PoolWorker poolWorker) {

0 commit comments

Comments
 (0)