提交 175513e2 作者: Brian Tiger Chow 提交者: Juan Batiz-Benet

refactor(bs/decision.Engine): pass in Entry

License: MIT
Signed-off-by: 's avatarBrian Tiger Chow <brian@perfmode.com>
上级 4bcfe094
......@@ -129,7 +129,7 @@ func (e *Engine) MessageReceived(p peer.Peer, m bsmsg.BitSwapMessage) error {
l.Wants(entry.Key, entry.Priority)
if exists, err := e.bs.Has(entry.Key); err == nil && exists {
newWorkExists = true
e.peerRequestQueue.Push(entry.Key, entry.Priority, p)
e.peerRequestQueue.Push(entry.Entry, p)
}
}
}
......@@ -140,7 +140,7 @@ func (e *Engine) MessageReceived(p peer.Peer, m bsmsg.BitSwapMessage) error {
for _, l := range e.ledgerMap {
if l.WantListContains(block.Key()) {
newWorkExists = true
e.peerRequestQueue.Push(block.Key(), 1, l.Partner)
e.peerRequestQueue.Push(wl.Entry{block.Key(), 1}, l.Partner)
}
}
}
......
......@@ -28,22 +28,19 @@ type task struct {
}
// Push currently adds a new task to the end of the list
func (tl *taskQueue) Push(block u.Key, priority int, to peer.Peer) {
if task, ok := tl.taskmap[taskKey(to, block)]; ok {
func (tl *taskQueue) Push(entry wantlist.Entry, to peer.Peer) {
if task, ok := tl.taskmap[taskKey(to, entry.Key)]; ok {
// TODO: when priority queue is implemented,
// rearrange this task
task.Entry.Priority = priority
task.Entry.Priority = entry.Priority
return
}
task := &task{
Entry: wantlist.Entry{
Key: block,
Priority: priority,
},
Entry: entry,
Target: to,
}
tl.tasks = append(tl.tasks, task)
tl.taskmap[taskKey(to, block)] = task
tl.taskmap[taskKey(to, entry.Key)] = task
}
// Pop 'pops' the next task to be performed. Returns nil no task exists.
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论