3.1 Release Candidate 1
Pre-release
Pre-release
This is the first release candidate of ReactiveSwift 3.1. It supports Swift 3.2 and Swift 4.0.
Bugfix
-
Fixed a scenario of downstream interruptions being dropped. (#577, kudos to @andersio)
Manual interruption of time shifted producers, including
delay,observe(on:),throttle,debounceandlazyMap, should discard outstanding events at best effort ASAP.But in ReactiveSwift 2.0 to 3.0, the manual interruption is ignored if the upstream producer has terminated. For example:
// Completed upstream + `delay`. SignalProducer.empty .delay(10.0, on: QueueScheduler.main) .startWithCompleted { print("Value should have been discarded!") } .dispose() // Console(t+10): Value should have been discarded!
The expected behavior has now been restored.
Please note that, since ReactiveSwift 2.0, while the interruption is handled immediately, the
interruptedevent delivery is not synchronous — it generally respects the closest asynchronous operator applied, and delivers on that scheduler.