Hi, figured we could actually use a changelog now:
- Fix a typo in stream completion tracker
- Rewrote completion percent computation to be low impact– no more walking a
tree of completion groups every time we need this info. Previously, with
medium sized tree of completion groups, even a relatively modest number of
calls to the top level
completed()method would result in absurd numbers of calls overall as it walked down the tree. We now, instead, keep track as we bubble up changes, so the computation is limited to when data changes and to the depth of that one branch, instead of every node. (Plus, we were already incurring this cost, since we already bubbled out changes.)
- Moved different tracker types out to their own files.
- Made tests test for TOO MANY events too.
- Standarized the source code formatting