[tor-commits] [flashproxy/master] Use the official sync.WaitGroup to wait for read loops to finish.
dcf at torproject.org
dcf at torproject.org
Wed Jan 30 05:11:38 UTC 2013
commit f61c5d1ead3eb9551b87d014dd175948ed27caba
Author: David Fifield <david at 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 {
More information about the tor-commits
mailing list