From 4f977d21ef2024b6c06ac40616eb833913fad4f8 Mon Sep 17 00:00:00 2001 From: wanghui Date: Fri, 15 Nov 2019 16:54:32 +0800 Subject: [PATCH 1/2] add sync wait cmd ctrl+c exit --- cli/sync.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cli/sync.go b/cli/sync.go index ab50889c1..ba0f7963f 100644 --- a/cli/sync.go +++ b/cli/sync.go @@ -2,6 +2,9 @@ package cli import ( "fmt" + "os" + "os/signal" + "syscall" "time" cid "github.com/ipfs/go-cid" @@ -64,6 +67,9 @@ var syncWaitCmd = &cli.Command{ defer closer() ctx := ReqContext(cctx) + sigChan := make(chan os.Signal, 2) + signal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT) + for { ss, err := napi.SyncState(ctx) if err != nil { @@ -81,7 +87,12 @@ var syncWaitCmd = &cli.Command{ return nil } - time.Sleep(1 * time.Second) + select { + case <-sigChan: + fmt.Println("\nExit by user") + return nil + case <-time.After(1 * time.Second): + } } }, } From 0af9692072105e74416ee53f27beb56fefd2b475 Mon Sep 17 00:00:00 2001 From: wanghui Date: Sat, 16 Nov 2019 14:11:00 +0800 Subject: [PATCH 2/2] use ctx.Done() to exit --- cli/sync.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/cli/sync.go b/cli/sync.go index ba0f7963f..da2dae8bd 100644 --- a/cli/sync.go +++ b/cli/sync.go @@ -2,9 +2,6 @@ package cli import ( "fmt" - "os" - "os/signal" - "syscall" "time" cid "github.com/ipfs/go-cid" @@ -67,9 +64,6 @@ var syncWaitCmd = &cli.Command{ defer closer() ctx := ReqContext(cctx) - sigChan := make(chan os.Signal, 2) - signal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT) - for { ss, err := napi.SyncState(ctx) if err != nil { @@ -88,7 +82,7 @@ var syncWaitCmd = &cli.Command{ } select { - case <-sigChan: + case <-ctx.Done(): fmt.Println("\nExit by user") return nil case <-time.After(1 * time.Second):