@@ -29,33 +29,35 @@ public final class OperatorParallel<T, R> implements Operator<R, T> {
29
29
30
30
private final Scheduler scheduler ;
31
31
private final Func1 <Observable <T >, Observable <R >> f ;
32
+ private final int degreeOfParallelism ;
32
33
33
34
public OperatorParallel (Func1 <Observable <T >, Observable <R >> f , Scheduler scheduler ) {
34
35
this .scheduler = scheduler ;
35
36
this .f = f ;
37
+ this .degreeOfParallelism = scheduler .degreeOfParallelism ();
36
38
}
37
39
38
40
@ Override
39
41
public Subscriber <? super T > call (Subscriber <? super R > op ) {
40
42
41
- Func1 <Subscriber <? super GroupedObservable <Integer , T >>, Subscriber <? super T >> groupBy =
42
- new OperatorGroupBy <Integer , T >(new Func1 <T , Integer >() {
43
+ Func1 <Subscriber <? super GroupedObservable <Long , T >>, Subscriber <? super T >> groupBy =
44
+ new OperatorGroupBy <Long , T >(new Func1 <T , Long >() {
43
45
44
- int i = 0 ;
46
+ long i = 0 ;
45
47
46
48
@ Override
47
- public Integer call (T t ) {
48
- return i ++ % scheduler . degreeOfParallelism () ;
49
+ public Long call (T t ) {
50
+ return i ++ % degreeOfParallelism ;
49
51
}
50
52
51
53
});
52
54
53
- Func1 <Subscriber <? super Observable <R >>, Subscriber <? super GroupedObservable <Integer , T >>> map =
54
- new OperatorMap <GroupedObservable <Integer , T >, Observable <R >>(
55
- new Func1 <GroupedObservable <Integer , T >, Observable <R >>() {
55
+ Func1 <Subscriber <? super Observable <R >>, Subscriber <? super GroupedObservable <Long , T >>> map =
56
+ new OperatorMap <GroupedObservable <Long , T >, Observable <R >>(
57
+ new Func1 <GroupedObservable <Long , T >, Observable <R >>() {
56
58
57
59
@ Override
58
- public Observable <R > call (GroupedObservable <Integer , T > g ) {
60
+ public Observable <R > call (GroupedObservable <Long , T > g ) {
59
61
// Must use observeOn not subscribeOn because we have a single source behind groupBy.
60
62
// The origin is already subscribed to, we are moving each group on to a new thread
61
63
// but the origin itself can only be on a single thread.
0 commit comments