提交 254ac1b1 作者: Michael Avila 提交者: Steven Allen

Fix inability to pin two things at once

License: MIT
Signed-off-by: 's avatarMichael Avila <me@michaelavila.com>
上级 86559e9e
...@@ -228,16 +228,20 @@ func (p *pinner) Pin(ctx context.Context, node ipld.Node, recurse bool) error { ...@@ -228,16 +228,20 @@ func (p *pinner) Pin(ctx context.Context, node ipld.Node, recurse bool) error {
if p.directPin.Has(c) { if p.directPin.Has(c) {
p.directPin.Remove(c) p.directPin.Remove(c)
} }
p.lock.Unlock()
// fetch entire graph // fetch entire graph
err := mdag.FetchGraph(ctx, c, p.dserv) err := mdag.FetchGraph(ctx, c, p.dserv)
p.lock.Lock()
if err != nil { if err != nil {
return err return err
} }
p.recursePin.Add(c) p.recursePin.Add(c)
} else { } 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 return err
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论