rafal
07/11/2017, 2:37 PMfun <T> ReceiveChannel<T>.reduce(reducer: (T, T) -> T) = produce<T>(Unconfined) {
var prev: T? = null
for (elem in this@reduce) {
if (prev == null) {
prev = elem
send(elem)
} else {
val new = reducer(prev, elem)
prev = new
send(new)
}
}
}
When run in debug mode everything works fine. However when run normally reading from prev
always returns null
- I suppose some "optimisation" is taking place in non-debug builds.