/** * Time the obserable with the specified timer */ public static <T> Observable<T> time( final Observable<T> observable, final Timer timer ) { final ObservableTimer proxy = new ObservableTimer( timer ); //attach to the observable return observable.doOnSubscribe( () -> proxy.start() ).doOnCompleted( () -> proxy.stop() ); } }