| Copyright | (c) Samuel Schlesinger 2020 |
|---|---|
| License | MIT |
| Maintainer | sgschlesinger@gmail.com |
| Stability | experimental |
| Portability | POSIX, Windows |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Control.Concurrent.Actor
Description
Synopsis
- data ActionT message m a
- data Actor message
- send :: Actor message -> message -> STM ()
- addAfterEffect :: Actor message -> (Maybe SomeException -> IO ()) -> STM ()
- threadId :: Actor message -> ThreadId
- actFinally :: (Either SomeException a -> IO ()) -> ActionT message IO a -> IO (Actor message)
- act :: ActionT message IO a -> IO (Actor message)
- receiveSTM :: MonadIO m => (message -> STM a) -> ActionT message m a
- receive :: MonadIO m => (message -> ActionT message m a) -> ActionT message m a
- hoistActionT :: (forall x. m x -> n x) -> ActionT message m a -> ActionT message n a
- link :: MonadIO m => Actor message -> ActionT message' m ()
- linkSTM :: Actor message -> Actor message' -> STM ()
- data LinkKill = LinkKill ThreadId
- self :: Applicative m => ActionT message m (Actor message)
- murder :: MonadIO m => Actor message -> m ()
- data MurderKill = MurderKill ThreadId
Documentation
data ActionT message m a Source #
A type that contains the actions that Actors will do.
Instances
| (MonadWriter w m, MonadReader r m, MonadState s m) => MonadRWS r w s (ActionT message m) Source # | |
Defined in Control.Concurrent.Actor | |
| MonadWriter w m => MonadWriter w (ActionT message m) Source # | |
| MonadState s m => MonadState s (ActionT message m) Source # | |
| MonadReader r m => MonadReader r (ActionT message m) Source # | |
| MonadError e m => MonadError e (ActionT message m) Source # | |
Defined in Control.Concurrent.Actor Methods throwError :: e -> ActionT message m a # catchError :: ActionT message m a -> (e -> ActionT message m a) -> ActionT message m a # | |
| MonadTrans (ActionT message) Source # | |
Defined in Control.Concurrent.Actor | |
| Monad m => Monad (ActionT message m) Source # | |
| Functor m => Functor (ActionT message m) Source # | |
| Applicative m => Applicative (ActionT message m) Source # | |
Defined in Control.Concurrent.Actor Methods pure :: a -> ActionT message m a # (<*>) :: ActionT message m (a -> b) -> ActionT message m a -> ActionT message m b # liftA2 :: (a -> b -> c) -> ActionT message m a -> ActionT message m b -> ActionT message m c # (*>) :: ActionT message m a -> ActionT message m b -> ActionT message m b # (<*) :: ActionT message m a -> ActionT message m b -> ActionT message m a # | |
| MonadIO m => MonadIO (ActionT message m) Source # | |
Defined in Control.Concurrent.Actor | |
| MonadCont m => MonadCont (ActionT message m) Source # | |
A handle to do things to actors, like sending them messages, fiddling with their threads, or adding an effect that will occur after they've finished executing.
addAfterEffect :: Actor message -> (Maybe SomeException -> IO ()) -> STM () Source #
actFinally :: (Either SomeException a -> IO ()) -> ActionT message IO a -> IO (Actor message) Source #
Perform some ActionT in a thread, with some cleanup afterwards.
receiveSTM :: MonadIO m => (message -> STM a) -> ActionT message m a Source #
Receive a message and, in the same transaction, produce some result.
receive :: MonadIO m => (message -> ActionT message m a) -> ActionT message m a Source #
Receive a message and do some ActionT with it.
hoistActionT :: (forall x. m x -> n x) -> ActionT message m a -> ActionT message n a Source #
Use a natural transformation to transform an ActionT on one base
monad to another.
The exception thrown when an actor we've linked with has died.
Instances
| Show LinkKill Source # | |
| Exception LinkKill Source # | |
Defined in Control.Concurrent.Actor Methods toException :: LinkKill -> SomeException # fromException :: SomeException -> Maybe LinkKill # displayException :: LinkKill -> String # | |
self :: Applicative m => ActionT message m (Actor message) Source #
Returns the Actor handle of the actor executing this action.
murder :: MonadIO m => Actor message -> m () Source #
Throws a MurderKill exception to the given Actor.
data MurderKill Source #
Constructors
| MurderKill ThreadId |
Instances
| Show MurderKill Source # | |
Defined in Control.Concurrent.Actor Methods showsPrec :: Int -> MurderKill -> ShowS # show :: MurderKill -> String # showList :: [MurderKill] -> ShowS # | |
| Exception MurderKill Source # | |
Defined in Control.Concurrent.Actor Methods toException :: MurderKill -> SomeException # fromException :: SomeException -> Maybe MurderKill # displayException :: MurderKill -> String # | |