Copyright | (c) Samuel Schlesinger 2020 |
---|---|
License | MIT |
Maintainer | sgschlesinger@gmail.com |
Stability | experimental |
Portability | POSIX, Windows |
Safe Haskell | Safe |
Language | Haskell2010 |
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
- link :: MonadIO m => Actor message -> ActionT message' m ()
Documentation
data ActionT message m a Source #
A type that contains the actions that Actor
s will do.
Instances
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.
Actor | |
|
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.