title: How to prevent combine_latest firing multiple times when multiple inputs tick simultaneously?
body: <p>I'm using <a href="https://github.com/ReactiveX/RxPY" rel="noreferrer">Reactive Extensions</a>' <a href="http://reactivex.io/documentation/operators/combinelatest.html" rel="noreferrer"><code>combine_latest</code></a> to perform an action whenever any inputs tick. The problem is if <strong>multiple</strong> inputs tick at the <strong>same time</strong> then <code>combine_latest</code> fires multiple times after each individual input ticks. This causes a headache because <code>combine_latest</code> is effectively ticking spuriously with stale values.</p>
  
  <p><strong>Minimum working example</strong> where a <code>fast</code> observable ticks every 10ms and a <code>slow</code> observable ticks every 30ms:</p>
  
  <pre><code>from rx.concurrency import HistoricalScheduler
  from rx import Observable
  from __future__ import print_function
  
  scheduler = HistoricalScheduler(initial_clock=1000)
  fast = Observable.generate_with_relative_time(1, lambda x: True, lambda x: x + 1, lambda x: x, lambda x: 10, scheduler=scheduler)
  slow = Observable.generate_with_relative_time(3, lambda x: True, lambda x: x + 3, lambda x: x, lambda x: 30, scheduler=scheduler)
  Observable.combine_latest(fast, slow, lambda x, y: dict(time=scheduler.now(), fast=x, slow=y)).subscribe(print)
  scheduler.advance_to(1100)
  </code></pre>
  
  <p>Every 30ms, when <code>fast</code> and <code>slow</code> tick simultaneously, <code>combine_latest</code> fires twice undesirably -- the output is below:</p>
  
  <pre><code>{'slow': 3, 'fast': 2, 'time': 1030}  # &lt;- This shouldn't be here
  {'slow': 3, 'fast': 3, 'time': 1030}
  {'slow': 3, 'fast': 4, 'time': 1040}
  {'slow': 3, 'fast': 5, 'time': 1050}
  {'slow': 6, 'fast': 5, 'time': 1060}  # &lt;- This shouldn't be here
  {'slow': 6, 'fast': 6, 'time': 1060}
  {'slow': 6, 'fast': 7, 'time': 1070}
  {'slow': 6, 'fast': 8, 'time': 1080}
  {'slow': 9, 'fast': 8, 'time': 1090}  # &lt;- This shouldn't be here
  {'slow': 9, 'fast': 9, 'time': 1090}
  {'slow': 9, 'fast': 10, 'time': 1100}
  </code></pre>
  
  <p>How can I prevent <code>combine_latest</code> from ticking spuriously?</p>