refactor: peerRequestQueue
it's a mistake to make one queue to fit all. Go's lack of algebraic
types turns a generalized queue into a monstrosity of type
checking/casting. Better to have individual queues for individual
purposes.
Conflicts:
exchange/bitswap/decision/bench_test.go
exchange/bitswap/decision/tasks/task_queue.go
fix(bitswap.decision.PRQ): if peers match, always return result of pri comparison
fix(bitswap.decision.Engine): push to the queue before notifying
TOCTOU bug
1. client notifies
2. worker checks (finds nil)
3. worker sleeps
3. client pushes (worker missed the update)
test(PQ): improve documentation and add test
test(bitswap.decision.Engine): handling received messages
License: MIT
Signed-off-by:
Brian Tiger Chow <brian@perfmode.com>
| 名称 |
最后提交
|
最后更新 |
|---|---|---|
| .. | ||
| decision | 正在载入提交数据... | |
| message | 正在载入提交数据... | |
| network | 正在载入提交数据... | |
| notifications | 正在载入提交数据... | |
| testnet | 正在载入提交数据... | |
| wantlist | 正在载入提交数据... | |
| README.md | 正在载入提交数据... | |
| bitswap.go | 正在载入提交数据... | |
| bitswap_test.go | 正在载入提交数据... | |
| testutils.go | 正在载入提交数据... |