| 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 = Actor {
- addAfterEffect :: (Maybe SomeException -> IO ()) -> STM ()
- threadId :: ThreadId
- send :: message -> STM ()
- 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 a. m a -> n a) -> ActionT message m a -> ActionT message n a
Documentation
data ActionT message m a Source #
A type that contains the actions that Actors will do.
Instances
| MonadReader r m => MonadReader r (ActionT message m) Source # | |
| 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 | |
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.
Constructors
| Actor | |
Fields
| |
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.