Failed example: counter.reschedule( timedelta(microseconds=1) ); wait_until(lambda: run_count==5) Expected: datetime.timedelta(0, 0, 1) run() call 3 running ... in run() call 4 running ... in run() call 5 running ... in Got: run() call 3 running in datetime.timedelta(0, 0, 1) run() call 4 running in run() call 5 running in