diff --git a/proxy/socks/server.go b/proxy/socks/server.go index 50693499e..bab5587ff 100644 --- a/proxy/socks/server.go +++ b/proxy/socks/server.go @@ -295,28 +295,21 @@ func (this *Server) transport(reader io.Reader, writer io.Writer, session *proxy input := ray.InboundInput() output := ray.InboundOutput() - var inputFinish, outputFinish sync.Mutex - inputFinish.Lock() - outputFinish.Lock() + defer input.Close() + defer output.Release() go func() { v2reader := v2io.NewAdaptiveReader(reader) defer v2reader.Release() v2io.Pipe(v2reader, input) - inputFinish.Unlock() - input.Close() }() - go func() { - v2writer := v2io.NewAdaptiveWriter(writer) - defer v2writer.Release() + v2writer := v2io.NewAdaptiveWriter(writer) + defer v2writer.Release() - v2io.Pipe(output, v2writer) - outputFinish.Unlock() - output.Release() - }() - outputFinish.Lock() + v2io.Pipe(output, v2writer) + output.Release() } type ServerFactory struct{}