Safe Haskell | None |
---|---|
Language | Haskell2010 |
Basic Thread operations.
Synopsis
- data ThreadId
- forkIODebug :: IO () -> IO ThreadId
- forkIOquiet :: String -> IO () -> IO ThreadId
- goesQuietly :: IO () -> IO ()
- type Duration = Int
- mins :: Double -> Duration
- secs :: Double -> Duration
- msecs :: Double -> Duration
- usecs :: Double -> Duration
- delay :: Duration -> IO ()
- after :: Duration -> IO a -> IO a
- every :: Duration -> IO a -> IO ()
- mapMConcurrent :: (a -> IO b) -> [a] -> IO [b]
- mapMConcurrent_ :: (a -> IO ()) -> [a] -> IO ()
- mapMConcurrentExcep :: forall a b. (a -> IO b) -> [a] -> IO [b]
Documentation
A ThreadId
is an abstract type representing a handle to a thread.
ThreadId
is an instance of Eq
, Ord
and Show
, where
the Ord
instance implements an arbitrary total ordering over
ThreadId
s. The Show
instance lets you convert an arbitrary-valued
ThreadId
to string form; showing a ThreadId
value is occasionally
useful when debugging or diagnosing the behaviour of a concurrent
program.
Note: in GHC, if you have a ThreadId
, you essentially have
a pointer to the thread itself. This means the thread itself can't be
garbage collected until you drop the ThreadId
.
This misfeature will hopefully be corrected at a later date.
goesQuietly :: IO () -> IO () Source #
mapMConcurrent :: (a -> IO b) -> [a] -> IO [b] Source #
mapMConcurrent_ :: (a -> IO ()) -> [a] -> IO () Source #
mapMConcurrentExcep :: forall a b. (a -> IO b) -> [a] -> IO [b] Source #