]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Simplify With ReadAt/WriteAt
authorSergey Matveev <stargrave@stargrave.org>
Mon, 28 Nov 2022 09:44:03 +0000 (12:44 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 13 Jan 2023 08:32:42 +0000 (11:32 +0300)
cmd/btrtrc/pc.go

index 6f81923b87e699218ef8e132c6de8fb8b977fc06..56e174a4c0a96f3f78816abc5e55c20fee98131d 100644 (file)
@@ -1,7 +1,6 @@
 package main
 
 import (
-       "io"
        "os"
        "sync"
 
@@ -26,12 +25,8 @@ func (self *BFPieceCompletion) Get(pk metainfo.PieceKey) (c storage.Completion,
                return
        }
        defer fd.Close()
-       _, err = fd.Seek(int64(pk.Index), io.SeekStart)
-       if err != nil {
-               return
-       }
        b := []byte{0}
-       _, err = fd.Read(b)
+       _, err = fd.ReadAt(b, int64(pk.Index))
        if err != nil {
                return
        }
@@ -58,14 +53,11 @@ func (self *BFPieceCompletion) Set(pk metainfo.PieceKey, complete bool) error {
                return err
        }
        defer fd.Close()
-       if _, err = fd.Seek(int64(pk.Index), io.SeekStart); err != nil {
-               return err
-       }
        b := []byte{'1'}
        if !complete {
                b[0] = '0'
        }
-       if _, err = fd.Write(b); err != nil {
+       if _, err = fd.WriteAt(b, int64(pk.Index)); err != nil {
                return err
        }
        return nil