Avatar
お、消えませんね。
2:58 AM
cancel を呼びやすいように元々 store をなくして戻り値で受けてたんですが、 cancel を消しても(未使用警告は出ますが)購読解除はされませんでした。
2:59 AM
store に戻した上で
2:59 AM
cancellables.forEach { $0.cancel() }
2:59 AM
を最後に実行しても購読解除されなかったので、最適化で早期リリースされてるのは間違ってないんじゃないかと思います。
3:00 AM
戻り値で受けたときに早期リリースされないのは単なる最適化の実装の問題で、 store で最適化されるなら戻り値で受けた場合も最適化され得るものとして、末尾 cancel するのが良さそうに思います。