| Copyright | Bas van Dijk |
|---|---|
| License | BSD-style |
| Maintainer | Bas van Dijk <v.dijk.bas@gmail.com> |
| Stability | experimental |
| Safe Haskell | Safe |
| Language | Haskell98 |
Control.Concurrent.Lifted
Description
This is a wrapped version of Control.Concurrent with types generalized
from IO to all monads in either MonadBase or MonadBaseControl.
Synopsis
- data ThreadId
- myThreadId :: MonadBase IO m => m ThreadId
- fork :: MonadBaseControl IO m => m () -> m ThreadId
- forkWithUnmask :: MonadBaseControl IO m => ((forall a. m a -> m a) -> m ()) -> m ThreadId
- forkFinally :: MonadBaseControl IO m => m a -> (Either SomeException a -> m ()) -> m ThreadId
- killThread :: MonadBase IO m => ThreadId -> m ()
- throwTo :: (MonadBase IO m, Exception e) => ThreadId -> e -> m ()
- forkOn :: MonadBaseControl IO m => Int -> m () -> m ThreadId
- forkOnWithUnmask :: MonadBaseControl IO m => Int -> ((forall a. m a -> m a) -> m ()) -> m ThreadId
- getNumCapabilities :: MonadBase IO m => m Int
- setNumCapabilities :: MonadBase IO m => Int -> m ()
- threadCapability :: MonadBase IO m => ThreadId -> m (Int, Bool)
- yield :: MonadBase IO m => m ()
- threadDelay :: MonadBase IO m => Int -> m ()
- threadWaitRead :: MonadBase IO m => Fd -> m ()
- threadWaitWrite :: MonadBase IO m => Fd -> m ()
- module Control.Concurrent.MVar.Lifted
- module Control.Concurrent.Chan.Lifted
- module Control.Concurrent.QSem.Lifted
- module Control.Concurrent.QSemN.Lifted
- rtsSupportsBoundThreads :: Bool
- forkOS :: MonadBaseControl IO m => m () -> m ThreadId
- isCurrentThreadBound :: MonadBase IO m => m Bool
- runInBoundThread :: MonadBaseControl IO m => m a -> m a
- runInUnboundThread :: MonadBaseControl IO m => m a -> m a
- mkWeakThreadId :: MonadBase IO m => ThreadId -> m (Weak ThreadId)
Concurrent Haskell
Instances
| Show ThreadId | |
| Eq ThreadId | |
| Ord ThreadId | |
Defined in GHC.Internal.Conc.Sync | |
Basic concurrency operations
myThreadId :: MonadBase IO m => m ThreadId Source #
Generalized version of myThreadId.
fork :: MonadBaseControl IO m => m () -> m ThreadId Source #
Generalized version of forkIO.
Note that, while the forked computation m () has access to the captured
state, all its side-effects in m are discarded. It is run only for its
side-effects in IO.
forkWithUnmask :: MonadBaseControl IO m => ((forall a. m a -> m a) -> m ()) -> m ThreadId Source #
Generalized version of forkIOWithUnmask.
Note that, while the forked computation m () has access to the captured
state, all its side-effects in m are discarded. It is run only for its
side-effects in IO.
forkFinally :: MonadBaseControl IO m => m a -> (Either SomeException a -> m ()) -> m ThreadId Source #
Generalized version of forkFinally.
Note that in forkFinally action and_then, while the forked
action and the and_then function have access to the captured
state, all their side-effects in m are discarded. They're run
only for their side-effects in IO.
killThread :: MonadBase IO m => ThreadId -> m () Source #
Generalized version of killThread.
throwTo :: (MonadBase IO m, Exception e) => ThreadId -> e -> m () Source #
Generalized version of throwTo.
Threads with affinity
forkOn :: MonadBaseControl IO m => Int -> m () -> m ThreadId Source #
Generalized version of forkOn.
Note that, while the forked computation m () has access to the captured
state, all its side-effects in m are discarded. It is run only for its
side-effects in IO.
forkOnWithUnmask :: MonadBaseControl IO m => Int -> ((forall a. m a -> m a) -> m ()) -> m ThreadId Source #
Generalized version of forkOnWithUnmask.
Note that, while the forked computation m () has access to the captured
state, all its side-effects in m are discarded. It is run only for its
side-effects in IO.
getNumCapabilities :: MonadBase IO m => m Int Source #
Generalized version of getNumCapabilities.
setNumCapabilities :: MonadBase IO m => Int -> m () Source #
Generalized version of setNumCapabilities.
threadCapability :: MonadBase IO m => ThreadId -> m (Int, Bool) Source #
Generalized version of threadCapability.
Scheduling
Blocking
Waiting
threadDelay :: MonadBase IO m => Int -> m () Source #
Generalized version of threadDelay.
threadWaitRead :: MonadBase IO m => Fd -> m () Source #
Generalized version of threadWaitRead.
threadWaitWrite :: MonadBase IO m => Fd -> m () Source #
Generalized version of threadWaitWrite.
Communication abstractions
Bound Threads
rtsSupportsBoundThreads :: Bool #
forkOS :: MonadBaseControl IO m => m () -> m ThreadId Source #
Generalized version of forkOS.
Note that, while the forked computation m () has access to the captured
state, all its side-effects in m are discarded. It is run only for its
side-effects in IO.
isCurrentThreadBound :: MonadBase IO m => m Bool Source #
Generalized version of isCurrentThreadBound.
runInBoundThread :: MonadBaseControl IO m => m a -> m a Source #
Generalized version of runInBoundThread.
runInUnboundThread :: MonadBaseControl IO m => m a -> m a Source #
Generalized version of runInUnboundThread.
Weak references to ThreadIds
mkWeakThreadId :: MonadBase IO m => ThreadId -> m (Weak ThreadId) Source #
Generalized versio of mkWeakThreadId.