]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Only write update bolt piece completion if the existing value differs
authorMatt Joiner <anacrolix@gmail.com>
Mon, 22 Feb 2021 03:51:34 +0000 (14:51 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 22 Feb 2021 03:51:34 +0000 (14:51 +1100)
storage/boltPieceCompletion.go

index 36fc6c1fa1405ab6776c5897ba63b1e73759d7ec..4bc190a249d89fdcfa2a76269a6bc65ebb50f1fa 100644 (file)
@@ -67,6 +67,9 @@ func (me boltPieceCompletion) Get(pk metainfo.PieceKey) (cn Completion, err erro
 }
 
 func (me boltPieceCompletion) Set(pk metainfo.PieceKey, b bool) error {
+       if c, err := me.Get(pk); err == nil && c.Ok && c.Complete == b {
+               return nil
+       }
        return me.db.Update(func(tx *bbolt.Tx) error {
                c, err := tx.CreateBucketIfNotExists(completionBucketKey)
                if err != nil {