6.7.0
This is the seventh minor release of ReactiveSwift 6.
Additions
-
Signaloffers two special variants for advanced users: unserialized and reentrant-unserialized. (#797)The input observer of these variants assume that mutual exclusion has been enforced by its callers.
You can create these variants through four
Signalstatic methods:unserialized(_:),unserializedPipe(_:),reentrantUnserialized(_:)andreentrantUnserializedPipe(_:). These would be adopted by ReactiveCocoa UIKit bindings to improve interoperability with Loop, to tackle some legitimate recursive delivery scenarios (e.g. around first responder management), and also to reduce fine-grained locking in ReactiveCocoa.Note that the default behavior of
Signalhas not been changed — event serialization remains the default behavior. -
SignalProduceroffers an unserialized variant viaSignalProducer.unserialized(_:). (#797) -
TestSchedulercan now advanced its clock byTimeInterval. (#828, kudos to @carsten-wenderdel)
Changes
-
Signaland Properties now use fewer locks, which should translate into minor performance improvements. (#797) -
Fixed spelling error in
Lifetime.Tokenclass documentation. (#835, kudos to @ansonj) -
As a continued refactoring effort since ReactiveSwift 6.6.0, all unary
SignalandSignalProduceroperators have been migrated to a new internal representation.When debugging your application, the call stacks involving ReactiveSwift may now look cleaner, without the clutter of compiler-generated reabstraction thunks. See #799 for an example.