Skip to content
Snippets Groups Projects
Commit 8a249827 authored by Ben Gamari's avatar Ben Gamari Committed by Marge Bot
Browse files

base: Label signal handling threads

Addresses part of #25452.

Addresses core-libraries-committee#305.
parent 28600825
No related branches found
Tags ghc-9.4.1-alpha3
No related merge requests found
...@@ -19,7 +19,7 @@ import GHC.Internal.Foreign.Ptr (Ptr, castPtr) ...@@ -19,7 +19,7 @@ import GHC.Internal.Foreign.Ptr (Ptr, castPtr)
import GHC.Internal.Foreign.Marshal.Alloc (finalizerFree) import GHC.Internal.Foreign.Marshal.Alloc (finalizerFree)
import GHC.Internal.Arr (inRange) import GHC.Internal.Arr (inRange)
import GHC.Internal.Base import GHC.Internal.Base
import GHC.Internal.Conc.Sync (forkIO) import GHC.Internal.Conc.Sync (myThreadId, labelThread, forkIO)
import GHC.Internal.IO (mask_, unsafePerformIO) import GHC.Internal.IO (mask_, unsafePerformIO)
import GHC.Internal.IOArray (IOArray, boundsIOArray, newIOArray, import GHC.Internal.IOArray (IOArray, boundsIOArray, newIOArray,
unsafeReadIOArray, unsafeWriteIOArray) unsafeReadIOArray, unsafeWriteIOArray)
...@@ -69,7 +69,10 @@ runHandlers p_info sig = do ...@@ -69,7 +69,10 @@ runHandlers p_info sig = do
else do handler <- unsafeReadIOArray arr int else do handler <- unsafeReadIOArray arr int
case handler of case handler of
Nothing -> return () Nothing -> return ()
Just (f,_) -> do _ <- forkIO (f p_info) Just (f,_) -> do _ <- forkIO $ do
tid <- myThreadId
labelThread tid "signal handler"
f p_info
return () return ()
-- It is our responsibility to free the memory buffer, so we create a -- It is our responsibility to free the memory buffer, so we create a
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment