ReactiveCocoa/ReactiveCocoa — pull request #1000 by corristo (2013-12-11 09:11:24+00:00)
Title: Another failing test case for reopened #988

I had to loop this test case to increase probability of garbage in `compoundDisposable` [here][source], usually it's just nil.

What's happening here:

* Flattened signal's `compoundDisposable` is disposed [here][source1] because of `-takeUntil:`
* `completedBlock` called [here][source2], but `compoundDisposable` is already disposed and no autoreleased reference to `completedBlock` is created
* Autorelease pool drain occurrs between this two events, actually in one of `-bind:` blocks, but it can be any autorelease pool as @Coneko [said][comment].

In original code flattened signal is `-repeat`ed, so `-takeUntil:` makes much more sense.

[source]: https://github.com/ReactiveCocoa/ReactiveCocoa/blob/v2.1.7/ReactiveCocoaFramework/ReactiveCocoa/RACSignal+Operations.m#L531
[source1]: https://github.com/ReactiveCocoa/ReactiveCocoa/blob/v2.1.7/ReactiveCocoaFramework/ReactiveCocoa/RACSignal+Operations.m#L519
[source2]: https://github.com/ReactiveCocoa/ReactiveCocoa/blob/v2.1.7/ReactiveCocoaFramework/ReactiveCocoa/RACSignal+Operations.m#L525
[comment]: https://github.com/ReactiveCocoa/ReactiveCocoa/issues/988#issuecomment-30300880