[flashproxy/master] Use the official sync.WaitGroup to wait for read loops to finish.

commit f61c5d1ead3eb9551b87d014dd175948ed27caba Author: David Fifield <david@bamsoftware.com> Date: Sun Nov 11 20:14:46 2012 -0800 Use the official sync.WaitGroup to wait for read loops to finish. --- websocket-transport/websocket-client.go | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/websocket-transport/websocket-client.go b/websocket-transport/websocket-client.go index 7205517..7e483f6 100644 --- a/websocket-transport/websocket-client.go +++ b/websocket-transport/websocket-client.go @@ -9,6 +9,7 @@ import ( "net/url" "os" "os/signal" + "sync" "time" ) @@ -24,7 +25,9 @@ func logDebug(format string, v ...interface{}) { } func proxy(local *net.TCPConn, ws *websocket.Conn) { - finishedChan := make(chan int) + var wg sync.WaitGroup + + wg.Add(2) // Local-to-WebSocket read loop. go func() { @@ -50,7 +53,7 @@ func proxy(local *net.TCPConn, ws *websocket.Conn) { local.CloseRead() ws.Close() - finishedChan <- 1 + wg.Done() }() // WebSocket-to-local read loop. @@ -79,13 +82,10 @@ func proxy(local *net.TCPConn, ws *websocket.Conn) { local.CloseWrite() ws.Close() - finishedChan <- 1 + wg.Done() }() - // Wait for both read loops to finish. - for i := 0; i < 2; i++ { - <-finishedChan - } + wg.Wait() } func handleConnection(conn *net.TCPConn) error {
participants (1)
-
dcf@torproject.org