schollz / progressbar

A really basic thread-safe progress bar for Golang applications
https://pkg.go.dev/github.com/schollz/progressbar/v3?tab=doc
MIT License
4.08k stars 220 forks source link

spinner does not update according to its phases if there are too few state modification #166

Closed mandelsoft closed 1 week ago

mandelsoft commented 1 year ago

The spinner only updates its rendered state, if the content of the bar is changed. If this happens not often enough the spinner character is not updated.

For example:

`       bar := progressbar.NewOptions(-1, progressbar.OptionSetDescription("test"), progressbar.OptionSpinnerType(15))
    for i := 0; i < 10; i++ {
        bar.Describe(fmt.Sprintf("test"))
        time.Sleep(1000 * time.Millisecond)
    }

It should iterate all letters, but it only shows a new letter if a Describe is called. As a result the spinner effect is gone.

schollz commented 7 months ago

pr welcome