[tor-commits] [goptlib/master] pt-spec no longer mentions SIGINT.

dcf at torproject.org dcf at torproject.org
Mon Sep 26 01:35:47 UTC 2016


commit 50915b3ba5ee27c0b2fcdad9edd51156fb55192c
Author: David Fifield <david at 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:



More information about the tor-commits mailing list