diff options
| author | Quentin Carbonneaux | 2021-11-20 18:02:20 +0100 |
|---|---|---|
| committer | Quentin Carbonneaux | 2021-11-20 18:02:27 +0100 |
| commit | fdf54c274cb0401e95399191133c2816e8f03ace (patch) | |
| tree | 80b58e944baabe236d6a4ea2620b259729d08394 | |
| parent | 72ed312051e68deacfa0cdf41692a3454bf74408 (diff) | |
[mx] couple bug fixes
| -rw-r--r-- | memex/main.go | 11 | ||||
| -rw-r--r-- | memex/misc.go | 3 | ||||
| -rw-r--r-- | memex/sdar.go | 6 |
3 files changed, 12 insertions, 8 deletions
diff --git a/memex/main.go b/memex/main.go index b6d21d4..5c33385 100644 --- a/memex/main.go +++ b/memex/main.go @@ -9,6 +9,7 @@ import ( "path" "sort" "strings" + "sync/atomic" "time" "xxhash" ) @@ -71,7 +72,7 @@ func faile(e error) { fail("%v", e) } * the file system data selected in paths (the paths are relative * to the walker's current path) */ -func addPaths(a SdarAdder, root Walker, paths []string) (Addr, error) { +func addPaths(a *SdarAdder, root Walker, paths []string) (Addr, error) { type FsItem struct{ cur, rest string } items := make([]FsItem, len(paths)) @@ -203,7 +204,7 @@ func addCommit(args commitArgs, head Addr) (new Addr, err error) { args.paths[i] = p } - var a SdarAdder + var a *SdarAdder a, err = MakeAdder(config.Arch) if err != nil { return @@ -221,7 +222,8 @@ func addCommit(args commitArgs, head Addr) (new Addr, err error) { var walker Walker progress := func() { - fmt.Printf("writing: %s ", BytesString(a.nbytes)) + n := atomic.LoadInt64(&a.nbytes) + fmt.Printf("writing: %s ", BytesString(n)) } if full { @@ -849,7 +851,8 @@ func checkCmd(revs []string) int { chk := &Check{reader: rd, item: make(map[string]int)} done := InfoLoop(func() { - fmt.Printf("checking: %s ", BytesString(chk.seen)) + n := atomic.LoadInt64(&chk.seen) + fmt.Printf("checking: %s ", BytesString(n)) }) for _, rev := range revs { diff --git a/memex/misc.go b/memex/misc.go index ad89498..2f937a0 100644 --- a/memex/misc.go +++ b/memex/misc.go @@ -4,6 +4,7 @@ import ( "fmt" "io" "os" + "sync/atomic" "time" ) @@ -74,7 +75,7 @@ type Counted struct { func (c *Counted) Write(buf []byte) (int, error) { n, err := c.w.Write(buf) - *c.p += int64(n) + atomic.AddInt64(c.p, int64(n)) return n, err } diff --git a/memex/sdar.go b/memex/sdar.go index e7d61f9..730a88e 100644 --- a/memex/sdar.go +++ b/memex/sdar.go @@ -168,19 +168,19 @@ func startWriteOp() { func SdarCommit(archive_path, msg string) error { startWriteOp() defer func() { writeOps-- }() - c := exec.Command(SdarPath, "commit", "-xx", "-a", archive_path, "-m", msg) + c := exec.Command(SdarPath, "commit", "-a", archive_path, "-m", msg) c.Stdin = nil c.Stdout = os.Stdout c.Stderr = os.Stderr return sdarSubprocessError("commit", c.Run()) } -func MakeAdder(archive_path string) (SdarAdder, error) { +func MakeAdder(archive_path string) (*SdarAdder, error) { startWriteOp() sdar, err := startSdar("add", archive_path) adder := SdarAdder{sdar, 0} adder.input = &Counted{&adder.nbytes, adder.input} - return adder, err + return &adder, err } func (a *SdarAdder) Done() error { |
