Skip to content

Commit 2c3db73

Browse files
Fix CurrentThreadScheduler Delay Bug
- introduced a bug during refactor, caught it while updating unit tests
1 parent 43e3d77 commit 2c3db73

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,18 @@ protected Boolean initialValue() {
5555
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action) {
5656
// immediately move to the InnerCurrentThreadScheduler
5757
InnerCurrentThreadScheduler innerScheduler = new InnerCurrentThreadScheduler();
58-
innerScheduler.enqueue(new DiscardableAction<T>(state, action), now());
58+
innerScheduler.schedule(state, action);
5959
enqueueFromOuter(innerScheduler, now());
6060
return innerScheduler;
6161
}
6262

6363
@Override
64-
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action, long dueTime, TimeUnit unit) {
65-
long execTime = now() + unit.toMillis(dueTime);
64+
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action, long delayTime, TimeUnit unit) {
65+
long execTime = now() + unit.toMillis(delayTime);
6666

6767
// create an inner scheduler and queue it for execution
6868
InnerCurrentThreadScheduler innerScheduler = new InnerCurrentThreadScheduler();
69-
innerScheduler.enqueue(new DiscardableAction<T>(state, new SleepingAction<T>(action, this, execTime)), execTime);
69+
innerScheduler.schedule(state, action, delayTime, unit);
7070
enqueueFromOuter(innerScheduler, execTime);
7171
return innerScheduler;
7272
}
@@ -113,7 +113,7 @@ public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ?
113113
public <T> Subscription schedule(T state, Func2<? super Scheduler, ? super T, ? extends Subscription> action, long delayTime, TimeUnit unit) {
114114
long execTime = now() + unit.toMillis(delayTime);
115115

116-
DiscardableAction<T> discardableAction = new DiscardableAction<T>(state, action);
116+
DiscardableAction<T> discardableAction = new DiscardableAction<T>(state, new SleepingAction<T>(action, this, execTime));
117117
childSubscription.set(discardableAction);
118118
enqueue(discardableAction, execTime);
119119
return childSubscription;

0 commit comments

Comments
 (0)