packages feed

nqe-0.6.9: src/NQE.hs

{-|
Module      : NQE
Copyright   : Haskoin Developers
License     : MIT
Maintainer  : jprupp@protonmail.ch
Stability   : experimental
Portability : POSIX

Concurrency library inspired by Erlang/OTP.

NQE helps you build programs out of many small threads that each own their
state and talk by passing messages, instead of threads that share mutable
state. It adds a few well-known patterns on top of 'STM' and @async@:
mailboxes, request and reply, supervision and publish/subscribe. Each module
explains why it works the way it does.

This module re-exports everything in the library:

* "Control.Concurrent.NQE.Process": processes, inboxes, mailboxes and
  synchronous queries.
* "Control.Concurrent.NQE.Supervisor": supervisors that start, monitor and stop
  child threads.
* "Control.Concurrent.NQE.Publisher": a process that broadcasts messages to any
  number of subscribers.
* "Control.Concurrent.NQE.Conduit": glue to feed a 'Data.Conduit.ConduitT'
  stream into a mailbox.
-}
module NQE
    ( -- * Processes and Mailboxes
      module Process
      -- * Process Supervisors
    , module Supervisor
      -- * Publisher and Subscribers
    , module Publisher
      -- * Conduit Integration
    , module Conduit
    ) where

import           Control.Concurrent.NQE.Conduit    as Conduit
import           Control.Concurrent.NQE.Process    as Process
import           Control.Concurrent.NQE.Publisher  as Publisher
import           Control.Concurrent.NQE.Supervisor as Supervisor