use yamux instead of smux

This commit is contained in:
fatedier
2018-04-25 02:34:07 +08:00
parent 69919e8ef9
commit 976cf3e9f8
33 changed files with 3567 additions and 1755 deletions

43
vendor/github.com/hashicorp/yamux/util.go generated vendored Normal file
View File

@@ -0,0 +1,43 @@
package yamux
import (
"sync"
"time"
)
var (
timerPool = &sync.Pool{
New: func() interface{} {
timer := time.NewTimer(time.Hour * 1e6)
timer.Stop()
return timer
},
}
)
// asyncSendErr is used to try an async send of an error
func asyncSendErr(ch chan error, err error) {
if ch == nil {
return
}
select {
case ch <- err:
default:
}
}
// asyncNotify is used to signal a waiting goroutine
func asyncNotify(ch chan struct{}) {
select {
case ch <- struct{}{}:
default:
}
}
// min computes the minimum of two values
func min(a, b uint32) uint32 {
if a < b {
return a
}
return b
}