Skip to content

Commit

Permalink
Merge branch 'fix/memory-leak'
Browse files Browse the repository at this point in the history
  • Loading branch information
twittemb committed Apr 22, 2020
2 parents 5349915 + cf2c76a commit 3b8b7d7
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 deletions.
5 changes: 4 additions & 1 deletion Sources/Combine/AnyPublisher+streamFromSpin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ import SpinCommon
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
public extension AnyPublisher where Failure == Never {
static func stream<Event>(from spin: Spin<Value, Event>) -> AnyPublisher<Value, Never> {
return Deferred<AnyPublisher<Value, Never>> {
return Deferred<AnyPublisher<Value, Never>> { [weak spin] in

guard let spin = spin else { return Empty().eraseToAnyPublisher() }

let currentState = CurrentValueSubject<Value, Never>(spin.initialState)

// merging all the effects into one event stream
Expand Down
5 changes: 4 additions & 1 deletion Sources/ReactiveSwift/SignalProducer+streamFromSpin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ import SpinCommon
public extension SignalProducer where Error == Never {

static func stream<Event>(from spin: Spin<Value, Event>) -> SignalProducer<Value, Never> {
return SignalProducer<Value, Never>.deferred {
return SignalProducer<Value, Never>.deferred { [weak spin] in

guard let spin = spin else { return .empty }

let currentState = MutableProperty<Value>(spin.initialState)

// merging all the effects into one event stream
Expand Down
5 changes: 4 additions & 1 deletion Sources/RxSwift/Observable+streamFromSpin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ import SpinCommon

public extension Observable {
static func stream<Event>(from spin: Spin<Element, Event>) -> Observable<Element> {
return Observable<Element>.deferred {
return Observable<Element>.deferred { [weak spin] in

guard let spin = spin else { return .empty() }

let currentState = ReplaySubject<Element>.create(bufferSize: 1)

// merging all the effects into one event stream
Expand Down

0 comments on commit 3b8b7d7

Please sign in to comment.