{-# LANGUAGE CPP #-} module Control.Concurrent.ThreadUtil ( #ifdef THREAD_DEBUG module Control.Concurrent.Lifted.Instrument #else module Control.Control.Lifted , module GHC.Conc #endif ) where #ifdef THREAD_DEBUG import Control.Concurrent.Lifted.Instrument #else import Control.Concurrent.Lifted import GHC.Conc (labelThread) forkLabeled :: String -> IO () -> IO ThreadId forkLabeled lbl action = do t <- forkIO action labelThread t lbl return t {-# INLINE forkLabeled #-} forkOSLabeled :: String -> IO () -> IO ThreadId forkOSLabeled lbl action = do t <- forkOS action labelThread t lbl return t {-# INLINE forkOSLabeled #-} #endif