Skip to content

Commit e35ce1c

Browse files
authored
Merge pull request #6 from ypopovych/master
Fixed signal loosing on chain init
2 parents 7dc5c6b + 61a499f commit e35ce1c

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

Sources/Event/SignalStream.swift

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,26 @@ open class SignalStream<T> : SignalStreamProtocol, MovableExecutionContextTenant
8989
}
9090

9191
public convenience init(context:ExecutionContextProtocol, advise:(@escaping Handler)->Off) {
92-
var emit:(Signal<Payload>)->Void = {_ in}
92+
var buffer = [Signal<T>]()
93+
var emit:(Signal<Payload>)->Void = { payload in
94+
buffer.append(payload)
95+
}
9396

9497
let off = advise { signal in
9598
emit(signal)
9699
}
100+
97101
self.init(context:context, recycle:off)
98102

99103
emit = { [unowned self](signal) in
100104
self.emit(signal: signal)
101105
}
106+
107+
for signal in buffer {
108+
self.context.async {
109+
emit(signal)
110+
}
111+
}
102112
}
103113

104114
deinit {

0 commit comments

Comments
 (0)