6.7.0
This is the seventh minor release of ReactiveSwift 6.
Additions
-
Signal
offers 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
Signal
static 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
Signal
has not been changed — event serialization remains the default behavior. -
SignalProducer
offers an unserialized variant viaSignalProducer.unserialized(_:)
. (#797) -
TestScheduler
can now advanced its clock byTimeInterval
. (#828, kudos to @carsten-wenderdel)
Changes
-
Signal
and Properties now use fewer locks, which should translate into minor performance improvements. (#797) -
Fixed spelling error in
Lifetime.Token
class documentation. (#835, kudos to @ansonj) -
As a continued refactoring effort since ReactiveSwift 6.6.0, all unary
Signal
andSignalProducer
operators 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.