early release buffers for better reusing

This commit is contained in:
Darien Raymond 2018-02-25 00:02:31 +01:00
parent 1e0cad50b1
commit caa52e9327
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
3 changed files with 5 additions and 6 deletions

View File

@ -117,9 +117,8 @@ func (s *Server) handlerUDPPayload(ctx context.Context, conn internet.Connection
ctx = protocol.ContextWithUser(ctx, request.User)
udpServer.Dispatch(ctx, dest, data, func(payload *buf.Buffer) {
defer payload.Release()
data, err := EncodeUDPPacket(request, payload.Bytes())
payload.Release()
if err != nil {
newError("failed to encode UDP packet").Base(err).AtWarning().WithContext(ctx).WriteToLog()
return

View File

@ -209,11 +209,11 @@ func (s *Server) handleUDPPayload(ctx context.Context, conn internet.Connection,
}
udpServer.Dispatch(ctx, request.Destination(), payload, func(payload *buf.Buffer) {
defer payload.Release()
newError("writing back UDP response with ", payload.Len(), " bytes").AtDebug().WithContext(ctx).WriteToLog()
udpMessage, err := EncodeUDPPacket(request, payload.Bytes())
payload.Release()
defer udpMessage.Release()
if err != nil {
newError("failed to write UDP response").AtWarning().Base(err).WithContext(ctx).WriteToLog()

View File

@ -73,9 +73,9 @@ func NewListener(ctx context.Context, address net.Address, port net.Port, addCon
}
func (l *Listener) OnReceive(payload *buf.Buffer, src net.Destination, originalDest net.Destination) {
defer payload.Release()
segments := l.reader.Read(payload.Bytes())
payload.Release()
if len(segments) == 0 {
newError("discarding invalid payload from ", src).WriteToLog()
return