• Brian Tiger Chow's avatar
    fix: add lock to taskQueue · c3d5b6ee
    Brian Tiger Chow authored
    @whyrusleeping may wanna have a look and make sure i didn't screw
    anything up here
    
    BenchmarkInstantaneousAddCat1MB-4            200          10763761 ns/op
    97.42 MB/s
    BenchmarkInstantaneousAddCat2MB-4       panic: runtime error: invalid
    memory address or nil pointer dereference
    [signal 0xb code=0x1 addr=0x0 pc=0xbedd]
    
    goroutine 14297 [running]:
    github.com/jbenet/go-ipfs/exchange/bitswap/decision.(*taskQueue).Remove(0xc2087553a0,
            0xc2085ef200, 0x22, 0x56f570, 0xc208367a40)
        /Users/btc/go/src/github.com/jbenet/go-ipfs/exchange/bitswap/decision/taskqueue.go:66
        +0x82
    github.com/jbenet/go-ipfs/exchange/bitswap/decision.(*Engine).MessageSent(0xc20871b5c0,
            0x56f570, 0xc208367a40, 0x570040, 0xc208753d40, 0x0, 0x0)
        /Users/btc/go/src/github.com/jbenet/go-ipfs/exchange/bitswap/decision/engine.go:177
        +0x29e
    github.com/jbenet/go-ipfs/exchange/bitswap.(*bitswap).send(0xc20871b7a0,
            0x56f4d8, 0xc208379800, 0x56f570, 0xc208367a40,
            0x570040, 0xc208753d40, 0x0, 0x0)
        /Users/btc/go/src/github.com/jbenet/go-ipfs/exchange/bitswap/bitswap.go:352
        +0x11c
    github.com/jbenet/go-ipfs/exchange/bitswap.(*bitswap).taskWorker(0xc20871b7a0,
            0x56f4d8, 0xc208379800)
        /Users/btc/go/src/github.com/jbenet/go-ipfs/exchange/bitswap/bitswap.go:238
        +0x165
        created by
        github.com/jbenet/go-ipfs/exchange/bitswap.New
        /Users/btc/go/src/github.com/jbenet/go-ipfs/exchange/bitswap/bitswap.go:66
        +0x49e
    c3d5b6ee
taskqueue.go 2 KB