Merge pull request #1384 from wojas/reduce-ticker-refresh

Reduce ticker refresh rate with RESTIC_PROGRESS_FPS env
This commit is contained in:
Alexander Neumann 2017-10-26 19:02:59 +02:00
commit f1cfb73a8b
1 changed files with 15 additions and 1 deletions

View File

@ -3,17 +3,31 @@ package restic
import (
"fmt"
"os"
"strconv"
"sync"
"time"
"golang.org/x/crypto/ssh/terminal"
)
const minTickerTime = time.Second / 60
// minTickerTime limits how often the progress ticker is updated. It can be
// overridden using the RESTIC_PROGRESS_FPS (frames per second) environment
// variable.
var minTickerTime = time.Second / 60
var isTerminal = terminal.IsTerminal(int(os.Stdout.Fd()))
var forceUpdateProgress = make(chan bool)
func init() {
fps, err := strconv.ParseInt(os.Getenv("RESTIC_PROGRESS_FPS"), 10, 64)
if err == nil && fps >= 1 {
if fps > 60 {
fps = 60
}
minTickerTime = time.Second / time.Duration(fps)
}
}
// Progress reports progress on an operation.
type Progress struct {
OnStart func()