1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-11-18 02:16:10 -05:00

improve fetch performance

This commit is contained in:
v2ray 2016-07-12 14:32:17 +02:00
parent f7d54d57c4
commit 4c63e9e168
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
2 changed files with 9 additions and 3 deletions

View File

@ -40,6 +40,12 @@ func (b *Buffer) Clear() *Buffer {
return b
}
func (b *Buffer) Reset() *Buffer {
b.offset = defaultOffset
b.Value = b.head
return b
}
// AppendBytes appends one or more bytes to the end of the buffer.
func (b *Buffer) AppendBytes(bytes ...byte) *Buffer {
b.Value = append(b.Value, bytes...)

View File

@ -333,11 +333,12 @@ func (this *Connection) updateTask() {
func (this *Connection) FetchInputFrom(conn net.Conn) {
go func() {
for {
payload := alloc.NewBuffer()
defer payload.Release()
for {
payload.Reset()
nBytes, err := conn.Read(payload.Value)
if err != nil {
payload.Release()
return
}
payload.Slice(0, nBytes)
@ -346,7 +347,6 @@ func (this *Connection) FetchInputFrom(conn net.Conn) {
} else {
log.Info("KCP|Connection: Invalid response from ", conn.RemoteAddr())
}
payload.Release()
}
}()
}