]> Sergey Matveev's repositories - btrtrc.git/commitdiff
fix dht-server cmd won't exit after Ctrl+C
authorMeng Zhuo <mengzhuo1203@gmail.com>
Wed, 21 Sep 2016 11:36:07 +0000 (19:36 +0800)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 22 Sep 2016 02:03:53 +0000 (12:03 +1000)
cmd/dht-server/main.go

index 15c523a5d7fd925e9dbc94255707bc883e78e89c..7e716c0d70284b8c00929d76529925803fff7fcc 100644 (file)
@@ -68,7 +68,6 @@ func init() {
                log.Fatalf("error loading table: %s", err)
        }
        log.Printf("dht server on %s, ID is %q", s.Addr(), s.ID())
-       setupSignals()
 }
 
 func saveTable() error {
@@ -102,15 +101,16 @@ func saveTable() error {
 func setupSignals() {
        ch := make(chan os.Signal)
        signal.Notify(ch)
-       go func() {
-               <-ch
-               s.Close()
-       }()
+       <-ch
+       s.Close()
+
+       if *tableFileName != "" {
+               if err := saveTable(); err != nil {
+                       log.Printf("error saving node table: %s", err)
+               }
+       }
 }
 
 func main() {
-       select {}
-       // if err := saveTable(); err != nil {
-       //      log.Printf("error saving node table: %s", err)
-       // }
+       setupSignals()
 }