Closed chris-laplante closed 1 year ago
This turned out to be a problem with MultiProgress
, not Ticker
.
To simplify the problem, you can change the number of tickers from 5 to 2. Depending on the order in which the tickers interleaved, you could end up with this:
Ticker 0 | Ticker 1 | MultiProgress |
---|---|---|
Tick, draw ⠁ doing stuff 0 |
Draw ⠁ doing stuff 0 |
|
Tick, draw ⠁ doing stuff 1 |
Draw \n⠁ doing stuff 1 |
|
Arc drops the BarState , so draw doing stuff 0 |
Ticker 0 Weak<BarState> is dead, so it's a zombie :zombie:. Erase 1 line, draw \n⠁ doing stuff 1 |
In summary, the Ticker
and ProgressBar
are working as they should, but the way MultiProgress
detects zombies is broken wrt how "finish"ing works.
The ticker_drop render test occasionally fails.
Reproduce it by running this command:
It will eventually fail with something like this:
Somehow the spinner is not correctly getting finished. Clearly there is a subtle race condition somewhere but I haven't been able to track it down.