Unverified 提交 c4398fe3 作者: Steven Allen 提交者: GitHub

Merge pull request #5512 from ipfs/fix/reduce-critical-pinning-session-5376

Fix inability to pin two things at once
......@@ -228,16 +228,28 @@ 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
}
if p.recursePin.Has(c) {
return nil
}
if p.directPin.Has(c) {
p.directPin.Remove(c)
}
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
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论