# rework std.Progress again · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/a3c9511ab9d56d4c06c612536a27b84d67ae415c)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: a3c9511ab9d56d4c06c612536a27b84d67ae415c

Requested commit: a3c9511ab9d56d4c06c612536a27b84d67ae415c

Commit: a3c9511ab9d56d4c06c612536a27b84d67ae415c

Tree: 5a61cccf339d6c8b9c35c4f86fbb511aae9c4edc

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
rework std.Progress again

This time, we preallocate a fixed set of nodes and have the user-visible
Node only be an index into them. This allows for lock-free management of
the node storage.

Only the parent indexes are stored, and the update thread makes a
serialized copy of the state before trying to compute children lists.

The update thread then walks the tree and outputs an entire tree of
progress rather than only one line.

There is a problem with clearing from the cursor to the end of the
screen when the cursor is at the bottom of the terminal.

```

## Parents

- [e1e4de2776901a0acb7a28454c0fe080c5c13a5e](https://git.cafe/gitcafe/zig/commit/e1e4de2776901a0acb7a28454c0fe080c5c13a5e?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/a3c9511ab9d56d4c06c612536a27b84d67ae415c?format=markdown)
