Skip to content

Commit 7e4029c

Browse files
Icelandjackmgmeier
authored andcommitted
cardano-tracer: Use same signal handler for SIGINT as SIGTERM.
1 parent 1d7ae2c commit 7e4029c

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

cardano-tracer/src/Cardano/Tracer/Run.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ doRunCardanoTracer config rtViewStateDir tr protocolsBrake dpRequestors = do
154154
traceWith tr TracerShutdownInitiated
155155
#if RTVIEW
156156
backupAllHistory tracerEnv tracerEnvRTView
157-
#endif
158157
traceWith tr TracerShutdownHistBackup
158+
#endif
159159
applyBrake (teProtocolsBrake tracerEnv)
160160
traceWith tr TracerShutdownComplete
161161

cardano-tracer/src/Cardano/Tracer/Utils.hs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ import Cardano.Tracer.MetaTrace hiding (traceWith)
4848
import Cardano.Tracer.Types
4949
import Ouroboros.Network.Socket (ConnectionId (..))
5050

51-
import Control.Concurrent (killThread, mkWeakThreadId, myThreadId)
51+
import Control.Concurrent (mkWeakThreadId, myThreadId)
5252
import Control.Concurrent.Async (Concurrently(..))
5353
import Control.Concurrent.Extra (Lock)
5454
import Control.Concurrent.MVar (newMVar, swapMVar, readMVar, tryReadMVar, modifyMVar_)
5555
import Control.Concurrent.STM (atomically)
5656
import Control.Concurrent.STM.TVar (modifyTVar', stateTVar, readTVarIO, newTVarIO)
57-
import Control.Exception (SomeAsyncException (..), SomeException, finally, fromException,
58-
try, tryJust)
57+
import Control.Exception (SomeAsyncException (..), SomeException, finally,
58+
fromException, try, tryJust, throwTo)
5959
import Control.Monad (forM_)
6060
import Control.Monad.Extra (whenJustM)
6161
import "contra-tracer" Control.Tracer (stdoutTracer, traceWith)
@@ -68,9 +68,10 @@ import Data.List.Extra (dropPrefix, dropSuffix, replace)
6868
import qualified Data.Map.Strict as Map
6969
import qualified Data.Set as S
7070
import qualified Data.Text as T
71+
import System.Exit (ExitCode (ExitSuccess))
7172
import System.IO (hClose, hFlush, stdout)
7273
import System.Mem.Weak (deRefWeak)
73-
import qualified System.Signal as S
74+
import qualified System.Signal as Signal
7475
import System.Time.Extra (sleep)
7576

7677
#if defined(mingw32_HOST_OS)
@@ -243,16 +244,16 @@ beforeProgramStops :: IO () -> IO ()
243244
beforeProgramStops action = do
244245
mainThreadIdWk <- mkWeakThreadId =<< myThreadId
245246
forM_ signals $ \sig ->
246-
S.installHandler sig . const $ do
247+
Signal.installHandler sig \_ -> do
247248
putStrLn " Program is stopping, please wait..."
248249
hFlush stdout
249-
action
250-
`finally` whenJustM (deRefWeak mainThreadIdWk) killThread
250+
action `finally`
251+
whenJustM (deRefWeak mainThreadIdWk) (`throwTo` ExitSuccess)
251252
where
253+
signals :: [Signal.Signal]
252254
signals =
253-
[ S.sigABRT
254-
, S.sigINT
255-
, S.sigTERM
255+
[ Signal.sigINT
256+
, Signal.sigTERM
256257
]
257258

258259
memberRegistry :: Ord a => a -> Registry a b -> IO Bool

0 commit comments

Comments
 (0)