Copyright | (c) pierre 2007 |
---|---|
License | BSD3 |
Maintainer | k.pierre.k@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Concurrent actions over single IO channel
Synopsis
- data Thread e
- type XmppThreadT m a e = ReaderT (Thread e) m a
- runThreaded :: (FromXML e, MonadIO m, MonadUnliftIO m) => XmppThreadT m () e -> XmppMonad m ()
- readChanS :: MonadIO m => XmppThreadT m (Either XmppError (SomeStanza e)) e
- writeChanS :: MonadIO m => SomeStanza () -> XmppThreadT m () e
- withNewThread :: (MonadIO m, MonadUnliftIO m) => XmppThreadT m () e -> XmppThreadT m (Async ()) e
- loop :: MonadIO m => XmppThreadT m () e -> XmppThreadT m () e
- waitFor :: MonadIO m => (Either XmppError (SomeStanza e) -> Bool) -> XmppThreadT m (Either XmppError (SomeStanza e)) e
Documentation
type XmppThreadT m a e = ReaderT (Thread e) m a Source #
runThreaded :: (FromXML e, MonadIO m, MonadUnliftIO m) => XmppThreadT m () e -> XmppMonad m () Source #
Runs thread in XmppState monad blocks forever.
readChanS :: MonadIO m => XmppThreadT m (Either XmppError (SomeStanza e)) e Source #
writeChanS :: MonadIO m => SomeStanza () -> XmppThreadT m () e Source #
withNewThread :: (MonadIO m, MonadUnliftIO m) => XmppThreadT m () e -> XmppThreadT m (Async ()) e Source #
Runs specified action in parallel
loop :: MonadIO m => XmppThreadT m () e -> XmppThreadT m () e Source #
Turns action into infinite loop
waitFor :: MonadIO m => (Either XmppError (SomeStanza e) -> Bool) -> XmppThreadT m (Either XmppError (SomeStanza e)) e Source #