Skip to content

Commit 77426cf

Browse files
authored
Merge branch 'main' into feat/peer-stats
2 parents d804d99 + 83aebf1 commit 77426cf

27 files changed

+331
-338
lines changed

benchmarks/benchmark_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
"github.com/ipfs/go-unixfs/importer/balanced"
2727
ihelper "github.com/ipfs/go-unixfs/importer/helpers"
2828
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
29-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
29+
"github.com/ipld/go-ipld-prime/node/basicnode"
3030
ipldselector "github.com/ipld/go-ipld-prime/traversal/selector"
3131
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
3232
mocknet "github.com/libp2p/go-libp2p/p2p/net/mock"

cidset/cidset.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"github.com/ipfs/go-cid"
77
"github.com/ipld/go-ipld-prime/fluent"
88
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
9-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
9+
"github.com/ipld/go-ipld-prime/node/basicnode"
1010

1111
"github.com/ipfs/go-graphsync/ipldutil"
1212
)

dedupkey/dedupkey.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package dedupkey
22

33
import (
4-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
4+
"github.com/ipld/go-ipld-prime/node/basicnode"
55

66
"github.com/ipfs/go-graphsync/ipldutil"
77
)

donotsendfirstblocks/donotsendfirstblocks.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package donotsendfirstblocks
22

33
import (
4-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
4+
"github.com/ipld/go-ipld-prime/node/basicnode"
55

66
"github.com/ipfs/go-graphsync/ipldutil"
77
)

impl/graphsync_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030
ihelper "github.com/ipfs/go-unixfs/importer/helpers"
3131
ipld "github.com/ipld/go-ipld-prime"
3232
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
33-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
33+
"github.com/ipld/go-ipld-prime/node/basicnode"
3434
"github.com/ipld/go-ipld-prime/traversal/selector"
3535
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
3636
"github.com/libp2p/go-libp2p-core/host"

ipldutil/ipldutil.go

+1-12
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,12 @@ package ipldutil
33
import (
44
"bytes"
55

6-
dagpb "github.com/ipld/go-codec-dagpb"
76
ipld "github.com/ipld/go-ipld-prime"
87
"github.com/ipld/go-ipld-prime/codec/dagcbor"
98
_ "github.com/ipld/go-ipld-prime/codec/raw"
10-
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
11-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
9+
"github.com/ipld/go-ipld-prime/node/basicnode"
1210
)
1311

14-
var defaultChooser = func(lnk ipld.Link, lctx ipld.LinkContext) (ipld.NodePrototype, error) {
15-
// We can decode all nodes into basicnode's Any, except for
16-
// dagpb nodes, which must explicitly use the PBNode prototype.
17-
if lnk, ok := lnk.(cidlink.Link); ok && lnk.Cid.Prefix().Codec == 0x70 {
18-
return dagpb.Type.PBNode, nil
19-
}
20-
return basicnode.Prototype.Any, nil
21-
}
22-
2312
func EncodeNode(node ipld.Node) ([]byte, error) {
2413
var buffer bytes.Buffer
2514
err := dagcbor.Encode(node, &buffer)

ipldutil/traverser.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ import (
55
"errors"
66
"io"
77

8+
dagpb "github.com/ipld/go-codec-dagpb"
89
"github.com/ipld/go-ipld-prime"
910
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
11+
"github.com/ipld/go-ipld-prime/node/basicnode"
1012
"github.com/ipld/go-ipld-prime/traversal"
1113
"github.com/ipld/go-ipld-prime/traversal/selector"
1214
)
@@ -19,7 +21,7 @@ can go away */
1921

2022
var defaultLinkSystem = cidlink.DefaultLinkSystem()
2123

22-
var defaultVisitor traversal.AdvVisitFn = func(traversal.Progress, ipld.Node, traversal.VisitReason) error { return nil }
24+
func defaultVisitor(traversal.Progress, ipld.Node, traversal.VisitReason) error { return nil }
2325

2426
// ContextCancelError is a sentinel that indicates the passed in context
2527
// was cancelled
@@ -86,7 +88,7 @@ func (tb TraversalBuilder) Start(parentCtx context.Context) Traverser {
8688
root: tb.Root,
8789
selector: tb.Selector,
8890
visitor: defaultVisitor,
89-
chooser: defaultChooser,
91+
chooser: dagpb.AddSupportToChooser(basicnode.Chooser),
9092
linkSystem: tb.LinkSystem,
9193
budget: tb.Budget,
9294
awaitRequest: make(chan struct{}, 1),

ipldutil/traverser_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
blocks "github.com/ipfs/go-block-format"
1212
"github.com/ipld/go-ipld-prime"
1313
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
14-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
14+
"github.com/ipld/go-ipld-prime/node/basicnode"
1515
"github.com/ipld/go-ipld-prime/traversal"
1616
"github.com/ipld/go-ipld-prime/traversal/selector"
1717
"github.com/ipld/go-ipld-prime/traversal/selector/builder"

message/message_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88

99
blocks "github.com/ipfs/go-block-format"
1010
cid "github.com/ipfs/go-cid"
11-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
11+
"github.com/ipld/go-ipld-prime/node/basicnode"
1212
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
1313
"github.com/stretchr/testify/require"
1414

messagequeue/messagequeue_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"testing"
99
"time"
1010

11-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
11+
"github.com/ipld/go-ipld-prime/node/basicnode"
1212
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
1313
"github.com/libp2p/go-libp2p-core/peer"
1414
"github.com/stretchr/testify/require"

metadata/metadata_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"github.com/ipld/go-ipld-prime/codec/dagcbor"
99
"github.com/ipld/go-ipld-prime/fluent"
1010
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
11-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
11+
"github.com/ipld/go-ipld-prime/node/basicnode"
1212
"github.com/stretchr/testify/require"
1313

1414
"github.com/ipfs/go-graphsync/testutil"

network/libp2p_impl_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"testing"
77
"time"
88

9-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
9+
"github.com/ipld/go-ipld-prime/node/basicnode"
1010
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
1111
"github.com/libp2p/go-libp2p-core/peer"
1212
mocknet "github.com/libp2p/go-libp2p/p2p/net/mock"

peermanager/peermessagemanager_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"testing"
77
"time"
88

9-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
9+
"github.com/ipld/go-ipld-prime/node/basicnode"
1010
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
1111
"github.com/libp2p/go-libp2p-core/peer"
1212
"github.com/stretchr/testify/require"

requestmanager/hooks/hooks_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"testing"
77

88
"github.com/ipld/go-ipld-prime"
9-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
9+
"github.com/ipld/go-ipld-prime/node/basicnode"
1010
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
1111
peer "github.com/libp2p/go-libp2p-core/peer"
1212
"github.com/stretchr/testify/require"

responsemanager/hooks/hooks_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88

99
"github.com/ipld/go-ipld-prime"
1010
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
11-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
11+
"github.com/ipld/go-ipld-prime/node/basicnode"
1212
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
1313
peer "github.com/libp2p/go-libp2p-core/peer"
1414
"github.com/stretchr/testify/require"

responsemanager/responsemanager_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"github.com/ipfs/go-peertaskqueue/peertask"
1414
ipld "github.com/ipld/go-ipld-prime"
1515
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
16-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
16+
"github.com/ipld/go-ipld-prime/node/basicnode"
1717
"github.com/libp2p/go-libp2p-core/peer"
1818
"github.com/stretchr/testify/require"
1919

selectorvalidator/selectorvalidator.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"errors"
55

66
ipld "github.com/ipld/go-ipld-prime"
7-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
7+
"github.com/ipld/go-ipld-prime/node/basicnode"
88
"github.com/ipld/go-ipld-prime/traversal"
99
"github.com/ipld/go-ipld-prime/traversal/selector"
1010
"github.com/ipld/go-ipld-prime/traversal/selector/builder"

selectorvalidator/selectorvalidator_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"testing"
55

66
ipld "github.com/ipld/go-ipld-prime"
7-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
7+
"github.com/ipld/go-ipld-prime/node/basicnode"
88
"github.com/ipld/go-ipld-prime/traversal/selector"
99
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
1010
"github.com/stretchr/testify/require"

taskqueue/taskqueue.go

+15-15
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package taskqueue
22

33
import (
44
"context"
5-
"sync/atomic"
5+
"sync"
66
"time"
77

88
"github.com/ipfs/go-peertaskqueue"
@@ -33,7 +33,7 @@ type WorkerTaskQueue struct {
3333
cancelFn func()
3434
peerTaskQueue *peertaskqueue.PeerTaskQueue
3535
workSignal chan struct{}
36-
noTaskSignal chan struct{}
36+
noTaskCond *sync.Cond
3737
ticker *time.Ticker
3838
activeTasks int32
3939
}
@@ -46,7 +46,7 @@ func NewTaskQueue(ctx context.Context) *WorkerTaskQueue {
4646
cancelFn: cancelFn,
4747
peerTaskQueue: peertaskqueue.New(),
4848
workSignal: make(chan struct{}, 1),
49-
noTaskSignal: make(chan struct{}, 1),
49+
noTaskCond: sync.NewCond(&sync.Mutex{}),
5050
ticker: time.NewTicker(thawSpeed),
5151
}
5252
}
@@ -93,13 +93,11 @@ func (tq *WorkerTaskQueue) Shutdown() {
9393
}
9494

9595
func (tq *WorkerTaskQueue) WaitForNoActiveTasks() {
96-
for atomic.LoadInt32(&tq.activeTasks) > 0 {
97-
select {
98-
case <-tq.ctx.Done():
99-
return
100-
case <-tq.noTaskSignal:
101-
}
96+
tq.noTaskCond.L.Lock()
97+
for tq.activeTasks > 0 {
98+
tq.noTaskCond.Wait()
10299
}
100+
tq.noTaskCond.L.Unlock()
103101
}
104102

105103
func (tq *WorkerTaskQueue) worker(executor Executor) {
@@ -118,14 +116,16 @@ func (tq *WorkerTaskQueue) worker(executor Executor) {
118116
}
119117
}
120118
for _, task := range tasks {
121-
atomic.AddInt32(&tq.activeTasks, 1)
119+
tq.noTaskCond.L.Lock()
120+
tq.activeTasks = tq.activeTasks + 1
121+
tq.noTaskCond.L.Unlock()
122122
terminate := executor.ExecuteTask(tq.ctx, pid, task)
123-
if atomic.AddInt32(&tq.activeTasks, -1) == 0 {
124-
select {
125-
case tq.noTaskSignal <- struct{}{}:
126-
default:
127-
}
123+
tq.noTaskCond.L.Lock()
124+
tq.activeTasks = tq.activeTasks - 1
125+
if tq.activeTasks == 0 {
126+
tq.noTaskCond.Broadcast()
128127
}
128+
tq.noTaskCond.L.Unlock()
129129
if terminate {
130130
return
131131
}

testutil/chaintypes/doc.go

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
//go:generate go run gen.go
2+
3+
package chaintypes

testutil/chaintypes/gen/main.go renamed to testutil/chaintypes/gen.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1+
//go:build ignore
2+
// +build ignore
3+
14
package main
25

36
import (
4-
"os/exec"
5-
67
"github.com/ipld/go-ipld-prime/schema"
78
gengo "github.com/ipld/go-ipld-prime/schema/gen/go"
89
)
910

1011
func main() {
11-
1212
ts := schema.TypeSystem{}
1313
ts.Init()
1414
adjCfg := &gengo.AdjunctCfg{}
@@ -28,5 +28,4 @@ func main() {
2828
schema.SpawnStructRepresentationMap(nil),
2929
))
3030
gengo.Generate(".", pkgName, ts, adjCfg)
31-
_ = exec.Command("go", "fmt").Run()
3231
}

testutil/chaintypes/ipldsch_minima.go

+12-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)