Skip to content

Commit 348ecce

Browse files
Remove use of ThreadLocal
This was an awkward leftover from early version of RxJava (pre v0.17).
1 parent 2cf4349 commit 348ecce

File tree

1 file changed

+2
-9
lines changed

1 file changed

+2
-9
lines changed

src/main/java/rx/schedulers/TrampolineScheduler.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,12 @@ public Worker createWorker() {
4545
/* package accessible for unit tests */TrampolineScheduler() {
4646
}
4747

48-
private static final ThreadLocal<PriorityQueue<TimedAction>> QUEUE = new ThreadLocal<PriorityQueue<TimedAction>>() {
49-
@Override
50-
protected PriorityQueue<TimedAction> initialValue() {
51-
return new PriorityQueue<TimedAction>();
52-
}
53-
};
54-
5548
volatile int counter;
5649
static final AtomicIntegerFieldUpdater<TrampolineScheduler> COUNTER_UPDATER = AtomicIntegerFieldUpdater.newUpdater(TrampolineScheduler.class, "counter");
5750

5851
private class InnerCurrentThreadScheduler extends Scheduler.Worker implements Subscription {
5952

53+
final PriorityQueue<TimedAction> queue = new PriorityQueue<TimedAction>();
6054
private final BooleanSubscription innerSubscription = new BooleanSubscription();
6155
private final AtomicInteger wip = new AtomicInteger();
6256

@@ -76,7 +70,6 @@ private Subscription enqueue(Action0 action, long execTime) {
7670
if (innerSubscription.isUnsubscribed()) {
7771
return Subscriptions.empty();
7872
}
79-
PriorityQueue<TimedAction> queue = QUEUE.get();
8073
final TimedAction timedAction = new TimedAction(action, execTime, COUNTER_UPDATER.incrementAndGet(TrampolineScheduler.this));
8174
queue.add(timedAction);
8275

@@ -95,7 +88,7 @@ private Subscription enqueue(Action0 action, long execTime) {
9588

9689
@Override
9790
public void call() {
98-
PriorityQueue<TimedAction> _q = QUEUE.get();
91+
PriorityQueue<TimedAction> _q = queue;
9992
if (_q != null) {
10093
_q.remove(timedAction);
10194
}

0 commit comments

Comments
 (0)