@@ -272,7 +272,11 @@ func (s *keyStore) worker() {
272
272
// returns the keys that weren't present already in the keystore.
273
273
func (s * keyStore ) put (ctx context.Context , keys []mh.Multihash ) ([]mh.Multihash , error ) {
274
274
seen := make (map [bit256.Key ]struct {}, len (keys ))
275
- toPut := make ([]pair , 0 , len (keys ))
275
+ b , err := s .ds .Batch (ctx )
276
+ if err != nil {
277
+ return nil , err
278
+ }
279
+ newKeys := make ([]mh.Multihash , 0 , len (keys ))
276
280
277
281
for _ , h := range keys {
278
282
k := keyspace .MhToBit256 (h )
@@ -286,32 +290,15 @@ func (s *keyStore) put(ctx context.Context, keys []mh.Multihash) ([]mh.Multihash
286
290
return nil , err
287
291
}
288
292
if ! ok {
289
- toPut = append (toPut , pair {k : dsk , h : h })
290
- }
291
- }
292
- clear (seen )
293
- if len (toPut ) == 0 {
294
- // Nothing to do
295
- return nil , nil
296
- }
297
-
298
- b , err := s .ds .Batch (ctx )
299
- if err != nil {
300
- return nil , err
301
- }
302
- for _ , p := range toPut {
303
- if err := b .Put (ctx , p .k , p .h ); err != nil {
304
- return nil , err
293
+ if err := b .Put (ctx , dsk , h ); err != nil {
294
+ return nil , err
295
+ }
296
+ newKeys = append (newKeys , h )
305
297
}
306
298
}
307
299
if err := b .Commit (ctx ); err != nil {
308
300
return nil , err
309
301
}
310
-
311
- newKeys := make ([]mh.Multihash , len (toPut ))
312
- for i , p := range toPut {
313
- newKeys [i ] = p .h
314
- }
315
302
return newKeys , nil
316
303
}
317
304
0 commit comments