@cryptotaxi247 / kubo / commits / 254ac1b11

Fix inability to pin two things at once

License: MIT Signed-off-by: Michael Avila <me@michaelavila.com>

Michael Avila committed Sep 22, 2018 at 17:36 UTC 254ac1b11876fec3febec27ffcbf0d028ba59949
1 file changed +6 -2
pin/pin.go
+6 -2
@@ -228,16 +228,20 @@ func (p *pinner) Pin(ctx context.Context, node ipld.Node, recurse bool) error {
228 if p.directPin.Has(c) {
229 p.directPin.Remove(c)
230 }
231 -
231 + p.lock.Unlock()
232 // fetch entire graph
233 err := mdag.FetchGraph(ctx, c, p.dserv)
234 + p.lock.Lock()
235 if err != nil {
236 return err
237 }
238
239 p.recursePin.Add(c)
240 } else {
240 - if _, err := p.dserv.Get(ctx, c); err != nil {
241 + p.lock.Unlock()
242 + _, err := p.dserv.Get(ctx, c)
243 + p.lock.Lock()
244 + if err != nil {
245 return err
246 }
247