summaryrefslogtreecommitdiff
path: root/lifted-concurrent
diff options
context:
space:
mode:
authorJames Crayne <jim.crayne@gmail.com>2019-10-18 09:01:03 +0000
committerJoe Crayne <joe@jerkface.net>2020-01-01 19:50:02 -0500
commitb3795514a956753b1b58a3709ce08e32d906b742 (patch)
treef554bafe905663e87250e084c36b5bc15f3f9dee /lifted-concurrent
parent9273a01aac621f09b0c00292b55153d558b4a4e0 (diff)
forkLabeled
Diffstat (limited to 'lifted-concurrent')
-rw-r--r--lifted-concurrent/lifted-concurrent.cabal2
-rw-r--r--lifted-concurrent/src/Control/Concurrent/Lifted/Instrument.hs7
2 files changed, 8 insertions, 1 deletions
diff --git a/lifted-concurrent/lifted-concurrent.cabal b/lifted-concurrent/lifted-concurrent.cabal
index 3d8acba7..ca32b4a5 100644
--- a/lifted-concurrent/lifted-concurrent.cabal
+++ b/lifted-concurrent/lifted-concurrent.cabal
@@ -2,7 +2,7 @@
2-- documentation, see http://haskell.org/cabal/users-guide/ 2-- documentation, see http://haskell.org/cabal/users-guide/
3 3
4name: lifted-concurrent 4name: lifted-concurrent
5version: 0.1.0.0 5version: 0.1.1.0
6-- synopsis: 6-- synopsis:
7-- description: 7-- description:
8license: BSD3 8license: BSD3
diff --git a/lifted-concurrent/src/Control/Concurrent/Lifted/Instrument.hs b/lifted-concurrent/src/Control/Concurrent/Lifted/Instrument.hs
index fc3b6369..eeda4de8 100644
--- a/lifted-concurrent/src/Control/Concurrent/Lifted/Instrument.hs
+++ b/lifted-concurrent/src/Control/Concurrent/Lifted/Instrument.hs
@@ -1,6 +1,7 @@
1{-# LANGUAGE FlexibleContexts #-} 1{-# LANGUAGE FlexibleContexts #-}
2module Control.Concurrent.Lifted.Instrument 2module Control.Concurrent.Lifted.Instrument
3 ( module Control.Concurrent.Lifted 3 ( module Control.Concurrent.Lifted
4 , forkLabeled
4 , forkIO 5 , forkIO
5 , forkOS 6 , forkOS
6 , fork 7 , fork
@@ -42,6 +43,12 @@ globals = unsafePerformIO $ newMVar $ GlobalState
42 } 43 }
43{-# NOINLINE globals #-} 44{-# NOINLINE globals #-}
44 45
46forkLabeled :: String -> IO () -> IO ThreadId
47forkLabeled lbl action = do
48 t <- forkIO action
49 labelThread t lbl
50 return t
51{-# INLINE forkLabeled #-}
45 52
46forkIO :: IO () -> IO ThreadId 53forkIO :: IO () -> IO ThreadId
47forkIO = instrumented GHC.forkIO 54forkIO = instrumented GHC.forkIO