|
23 | 23 | import java.util.concurrent.atomic.AtomicLong; |
24 | 24 |
|
25 | 25 | import rx.Scheduler; |
26 | | -import rx.functions.Func0; |
27 | 26 | import rx.plugins.RxJavaPlugins; |
28 | 27 |
|
29 | 28 | /** |
30 | 29 | * Static factory methods for creating Schedulers. |
31 | 30 | */ |
32 | 31 | public class Schedulers { |
33 | 32 |
|
34 | | - private final Func0<Scheduler> computationScheduler; |
35 | | - private final Func0<Scheduler> ioScheduler; |
36 | | - private final Func0<Scheduler> newThreadScheduler; |
| 33 | + private final Scheduler computationScheduler; |
| 34 | + private final Scheduler ioScheduler; |
| 35 | + private final Scheduler newThreadScheduler; |
37 | 36 |
|
38 | 37 | private static final Schedulers INSTANCE = new Schedulers(); |
39 | 38 |
|
40 | 39 | private Schedulers() { |
41 | | - Func0<Scheduler> c = RxJavaPlugins.getInstance().getDefaultSchedulers().getComputationSchedulerFactory(); |
| 40 | + Scheduler c = RxJavaPlugins.getInstance().getDefaultSchedulers().getComputationScheduler(); |
42 | 41 | if (c != null) { |
43 | 42 | computationScheduler = c; |
44 | 43 | } else { |
45 | | - computationScheduler = new Func0<Scheduler>() { |
46 | | - |
47 | | - @Override |
48 | | - public Scheduler call() { |
49 | | - return executor(createComputationExecutor()); |
50 | | - } |
51 | | - |
52 | | - }; |
| 44 | + computationScheduler = executor(createComputationExecutor()); |
53 | 45 | } |
54 | 46 |
|
55 | | - Func0<Scheduler> io = RxJavaPlugins.getInstance().getDefaultSchedulers().getIOSchedulerFactory(); |
| 47 | + Scheduler io = RxJavaPlugins.getInstance().getDefaultSchedulers().getIOScheduler(); |
56 | 48 | if (io != null) { |
57 | 49 | ioScheduler = io; |
58 | 50 | } else { |
59 | | - ioScheduler = new Func0<Scheduler>() { |
60 | | - |
61 | | - @Override |
62 | | - public Scheduler call() { |
63 | | - return executor(createIOExecutor()); |
64 | | - } |
65 | | - |
66 | | - }; |
| 51 | + ioScheduler = executor(createIOExecutor()); |
67 | 52 | } |
68 | 53 |
|
69 | | - Func0<Scheduler> nt = RxJavaPlugins.getInstance().getDefaultSchedulers().getNewThreadSchedulerFactory(); |
| 54 | + Scheduler nt = RxJavaPlugins.getInstance().getDefaultSchedulers().getNewThreadScheduler(); |
70 | 55 | if (nt != null) { |
71 | 56 | newThreadScheduler = nt; |
72 | 57 | } else { |
73 | | - newThreadScheduler = new Func0<Scheduler>() { |
74 | | - |
75 | | - @Override |
76 | | - public Scheduler call() { |
77 | | - return NewThreadScheduler.instance(); |
78 | | - } |
79 | | - |
80 | | - }; |
| 58 | + newThreadScheduler = NewThreadScheduler.instance(); |
81 | 59 | } |
82 | 60 |
|
83 | 61 | } |
@@ -117,7 +95,7 @@ public static Scheduler trampoline() { |
117 | 95 | * @return {@link NewThreadScheduler} instance |
118 | 96 | */ |
119 | 97 | public static Scheduler newThread() { |
120 | | - return INSTANCE.newThreadScheduler.call(); |
| 98 | + return INSTANCE.newThreadScheduler; |
121 | 99 | } |
122 | 100 |
|
123 | 101 | /** |
@@ -167,7 +145,7 @@ public static Scheduler threadPoolForComputation() { |
167 | 145 | * @return {@link Scheduler} for computation-bound work. |
168 | 146 | */ |
169 | 147 | public static Scheduler computation() { |
170 | | - return INSTANCE.computationScheduler.call(); |
| 148 | + return INSTANCE.computationScheduler; |
171 | 149 | } |
172 | 150 |
|
173 | 151 | /** |
@@ -199,7 +177,7 @@ public static Scheduler threadPoolForIO() { |
199 | 177 | * @return {@link ExecutorScheduler} for IO-bound work. |
200 | 178 | */ |
201 | 179 | public static Scheduler io() { |
202 | | - return INSTANCE.ioScheduler.call(); |
| 180 | + return INSTANCE.ioScheduler; |
203 | 181 | } |
204 | 182 |
|
205 | 183 | private static ScheduledExecutorService createComputationExecutor() { |
|
0 commit comments