Provide Observable.timestamp(Scheduler) to be used in the tests.
Proposed solution to the time gap, using unbounded buffering.
Added bounded buffering capability to SubscribeOn
Check child unsubscription status more eagerly.
Merge branch 'BlockingBufferUntilExperiment' of github.com:akarnokd/RxJava into subscribeOn-blockingBuffer
TestSubscriber.awaitTerminalEventAndUnsubscribeOnTimeout
GroupBy and SubscribeOn Tests Passing
Hide Buffer/Blocking SubscribeOn Behavior

- I want to have it for internal usage but am not ready to publicly expose it.
Comment on Parallel

- the previously performed observeOn changes appear to have resolved the non-determinism
SubscribeOn Scheduler/Unsubscribe Behavior
Fix Unit Tests related to SubscribeOn

- timeout test could be interrupted when unsubscribed
- groupBy.subscribeOn needs blocking buffer
Add timeout to CoundDownLatch, ignore InterruptException and fix the test to be consistent with the new subscribeOn
Merge pull request #874 from davidmoten/master

Update CompositeSubscriptionTest.java
Merge pull request #7 from zsxwing/subscribeOn+groupBy

Add timeout to CoundDownLatch, ignore InterruptException and fix the tes...
Revert to 1.8 as 1.10 is causing the build to fail

... complicated build server issues ... apparently isn't going to be resolved until Gradle 1.12.
Merge pull request #869 from benjchristensen/subscribeOn+groupBy

subscribeOn + groupBy
Merge branch 'issue750' of github.com:vigdorchik/RxJava into 751-merge

Conflicts:
	language-adaptors/rxjava-scala/src/test/scala/rx/lang/scala/ObservableTest.scala
Correct synchronization guard in groupByUntil

Can't see how `synchronized (key) { ... }` could have been correct here; `key` will hardly ever be the same instance for different invocations of `keySelector`, and the comment on line 73 clearly states `gate` to be the guard for `map`.
Merge pull request #876 from benjchristensen/751-merge

Manual Merge of #750
Scheduler.scheduleRecursive

Make recursive scheduling a first-class citizen without needing to refer to "this" which doesn't work inside lambdas (Java8/Scala/etc).

        Schedulers.newThread().scheduleRecursive(new Action1<Recurse>() {
            @Override
            public void call(Recurse r) {
                System.out.println("do stuff on thread: " + Thread.currentThread() + " Time: " + System.nanoTime());
                r.schedule(100, TimeUnit.MILLISECONDS);
            }
        });