From fa4711bd04ae91283276e63dae1f4cdc46e7336d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 25 Aug 2022 13:47:22 +0530 Subject: [PATCH] Give the kill signal time to be delivered --- tools/tui/loop.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/tui/loop.go b/tools/tui/loop.go index 6b0cfe449..2534e04b0 100644 --- a/tools/tui/loop.go +++ b/tools/tui/loop.go @@ -273,14 +273,20 @@ func (self *Loop) ScreenSize() (ScreenSize, error) { return self.screen_size, err } +func kill_self(sig unix.Signal) { + unix.Kill(os.Getpid(), sig) + // Give the signal time to be delivered + time.Sleep(20 * time.Millisecond) +} + func (self *Loop) KillIfSignalled() { switch self.death_signal { case SIGINT: - unix.Kill(os.Getpid(), unix.SIGINT) + kill_self(unix.SIGINT) case SIGTERM: - unix.Kill(os.Getpid(), unix.SIGTERM) + kill_self(unix.SIGTERM) case SIGHUP: - unix.Kill(os.Getpid(), unix.SIGHUP) + kill_self(unix.SIGHUP) } }