commit 50915b3ba5ee27c0b2fcdad9edd51156fb55192c Author: David Fifield david@bamsoftware.com Date: Sun Sep 25 18:33:10 2016 -0700
pt-spec no longer mentions SIGINT. --- examples/dummy-client/dummy-client.go | 22 ++++++++-------------- examples/dummy-server/dummy-server.go | 22 ++++++++-------------- pt.go | 2 +- 3 files changed, 17 insertions(+), 29 deletions(-)
diff --git a/examples/dummy-client/dummy-client.go b/examples/dummy-client/dummy-client.go index 74843fd..a15189c 100644 --- a/examples/dummy-client/dummy-client.go +++ b/examples/dummy-client/dummy-client.go @@ -114,9 +114,9 @@ func main() { var numHandlers int = 0 var sig os.Signal sigChan := make(chan os.Signal, 1) - signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) + signal.Notify(sigChan, syscall.SIGTERM)
- // wait for first signal + // keep track of handlers and wait for a signal sig = nil for sig == nil { select { @@ -125,21 +125,15 @@ func main() { case sig = <-sigChan: } } + + // signal received, shut down for _, ln := range listeners { ln.Close() } - - if sig == syscall.SIGTERM { - return - } - - // wait for second signal or no more handlers - sig = nil - for sig == nil && numHandlers != 0 { - select { - case n := <-handlerChan: - numHandlers += n - case sig = <-sigChan: + for n := range handlerChan { + numHandlers += n + if numHandlers == 0 { + break } } } diff --git a/examples/dummy-server/dummy-server.go b/examples/dummy-server/dummy-server.go index 933630b..c31c63f 100644 --- a/examples/dummy-server/dummy-server.go +++ b/examples/dummy-server/dummy-server.go @@ -106,9 +106,9 @@ func main() { var numHandlers int = 0 var sig os.Signal sigChan := make(chan os.Signal, 1) - signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) + signal.Notify(sigChan, syscall.SIGTERM)
- // wait for first signal + // keep track of handlers and wait for a signal sig = nil for sig == nil { select { @@ -117,21 +117,15 @@ func main() { case sig = <-sigChan: } } + + // signal received, shut down for _, ln := range listeners { ln.Close() } - - if sig == syscall.SIGTERM { - return - } - - // wait for second signal or no more handlers - sig = nil - for sig == nil && numHandlers != 0 { - select { - case n := <-handlerChan: - numHandlers += n - case sig = <-sigChan: + for n := range handlerChan { + numHandlers += n + if numHandlers == 0 { + break } } } diff --git a/pt.go b/pt.go index 82c42d5..20917a4 100644 --- a/pt.go +++ b/pt.go @@ -113,7 +113,7 @@ // pt.SmethodsDone() // } // -// Some additional care is needed to handle SIGINT and shutdown properly. See +// Some additional care is needed to handle signals and shutdown properly. See // the example programs dummy-client and dummy-server. // // Tor pluggable transports specification:
tor-commits@lists.torproject.org