|Kahn process networks with channels
adapted for arbitrary precision real higher-order data communication.
Executed using a number of parallel threads.
Each process started in a dedicated thread
and each process typically starts further internal threads.
Each channel is a transactional variable (TVar)
known to both end processes and allows them to communicate
according to its instance of the QAProtocol class.
|data ERProcess sInAnyProt sOutAnyProt ||Source|
|All data that define a process, including its behaviour.
Each executing process is instantiated from one of these descriptions.
|erprocName :: ERProcessName||undeployed process name
|erprocDeploy :: ERProcessDeploy sInAnyProt sOutAnyProt|
On deployment, a process either expands itself using
the provided callback function and does not use the
sockets at all
OR it uses the sockets and never calls the expansion
|erprocInputTypes :: [ChannelType]|
|erprocOutputTypes :: [ChannelType]|
|data ERProcessAction s q a ||Source|
Explicit representation of a process' action, able to distinguish
between answering and making a query or pausing one internal thread
until the internal state (TV) has met some condition.
This is useful for producing highly customisable templates for processes
as Haskell functions whose parameters are functions that determine
what the process should do as a response to some external or internal events.
See for example Control.ERNet.Blocks.Basic.passThroughStatefulProcess.
|ERProcessActionRetryWhen (s -> Bool)|
|ERProcessActionAnswer Bool a|
|Produced by Haddock version 2.4.2|