From 055c8f18332dae0c815b3ee8de23eed38d97b869 Mon Sep 17 00:00:00 2001 From: V2Ray Date: Sat, 10 Oct 2015 01:25:12 +0200 Subject: [PATCH] Move goroutine one level above. --- point.go | 3 +-- proxy/freedom/freedom.go | 14 ++++++-------- proxy/vmess/vmessout.go | 3 +-- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/point.go b/point.go index aa996f612..65946c673 100644 --- a/point.go +++ b/point.go @@ -97,7 +97,6 @@ func (vp *Point) Start() error { func (p *Point) DispatchToOutbound(packet v2net.Packet) InboundRay { ray := NewRay() - // TODO: handle error - p.och.Dispatch(packet, ray) + go p.och.Dispatch(packet, ray) return ray } diff --git a/proxy/freedom/freedom.go b/proxy/freedom/freedom.go index adc8e97a8..528d24fb8 100644 --- a/proxy/freedom/freedom.go +++ b/proxy/freedom/freedom.go @@ -46,14 +46,12 @@ func (vconn *FreedomConnection) Dispatch(firstPacket v2net.Packet, ray core.Outb go dumpOutput(conn, output, &readMutex, firstPacket.Destination().IsUDP()) - go func() { - writeMutex.Lock() - if tcpConn, ok := conn.(*net.TCPConn); ok { - tcpConn.CloseWrite() - } - readMutex.Lock() - conn.Close() - }() + writeMutex.Lock() + if tcpConn, ok := conn.(*net.TCPConn); ok { + tcpConn.CloseWrite() + } + readMutex.Lock() + conn.Close() return nil } diff --git a/proxy/vmess/vmessout.go b/proxy/vmess/vmessout.go index 6846d259c..c937ea844 100644 --- a/proxy/vmess/vmessout.go +++ b/proxy/vmess/vmessout.go @@ -88,8 +88,7 @@ func (handler *VMessOutboundHandler) Dispatch(firstPacket v2net.Packet, ray core request.RequestKey = buffer[16:32] request.ResponseHeader = buffer[32:] - go startCommunicate(request, vNextAddress, ray, firstPacket) - return nil + return startCommunicate(request, vNextAddress, ray, firstPacket) } func startCommunicate(request *protocol.VMessRequest, dest v2net.Destination, ray core.OutboundRay, firstPacket v2net.Packet) error {