title: rxJava buffer() with time that honours backpressure
body: <p>The versions of <code>buffer</code> operator that don't operate on time honour backpressure as per JavaDoc:</p>
  <p><a href="http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Flowable.html#buffer-int-" rel="nofollow noreferrer">http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Flowable.html#buffer-int-</a></p>
  <p>However, any version of <code>buffer</code> that involves time based buffers doesn't support backpressure, like this one</p>
  <p><a href="http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Flowable.html#buffer-long-java.util.concurrent.TimeUnit-int-" rel="nofollow noreferrer">http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Flowable.html#buffer-long-java.util.concurrent.TimeUnit-int-</a></p>
  <p>I understand this comes from the fact that once the time is ticking, you can't stop it similarly to, for example <code>interval</code> operator, that doesn't support backpressure either for the same reason.</p>
  <p>What I want is a buffering operator that is both size and time based and fully supports backpressure by propagating the backpressure signals to BOTH the upstream AND the time ticking producer, something like this:</p>
  <pre><code>someFlowable()
  .buffer(
       Flowable.interval(1, SECONDS).onBackpressureDrop(),
       10
  );
  </code></pre>
  <p>So now I could drop the tick on backpressure signals.</p>
  <p>Is this something currently achievable in rxJava2? How about Project-Reactor?</p>