From 254ac1b11876fec3febec27ffcbf0d028ba59949 Mon Sep 17 00:00:00 2001 From: Michael Avila Date: Sat, 22 Sep 2018 17:36:14 -0700 Subject: [PATCH] Fix inability to pin two things at once License: MIT Signed-off-by: Michael Avila --- pin/pin.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pin/pin.go b/pin/pin.go index cadc4530a..233e99623 100644 --- a/pin/pin.go +++ b/pin/pin.go @@ -228,16 +228,20 @@ func (p *pinner) Pin(ctx context.Context, node ipld.Node, recurse bool) error { if p.directPin.Has(c) { p.directPin.Remove(c) } - + p.lock.Unlock() // fetch entire graph err := mdag.FetchGraph(ctx, c, p.dserv) + p.lock.Lock() if err != nil { return err } p.recursePin.Add(c) } else { - if _, err := p.dserv.Get(ctx, c); err != nil { + p.lock.Unlock() + _, err := p.dserv.Get(ctx, c) + p.lock.Lock() + if err != nil { return err }