module Control.Eff.Concurrent
(
module Control.Eff.Concurrent.Process
,
module Control.Eff.Concurrent.Process.ForkIOScheduler
,
module Control.Eff.Concurrent.Process.Timer
,
module Control.Eff.Concurrent.Protocol
,
module Control.Eff.Concurrent.Protocol.Client
,
module Control.Eff.Concurrent.Protocol.Wrapper
,
module Control.Eff.Concurrent.Protocol.Observer
,
module Control.Eff.Log
,
module Control.Eff.LogWriter.Async
,
module Control.Eff.LogWriter.Console
,
module Control.Eff.LogWriter.File
,
module Control.Eff.LogWriter.UDP
,
module Control.Eff.LogWriter.DebugTrace
,
module Control.Eff.LogWriter.Rich
,
module Control.Eff.LogWriter.UnixSocket
,
module Control.Eff.Loop
)
where
import Control.Eff.Concurrent.Process
( Process(..)
, SafeProcesses
, Processes
, HasProcesses
, HasSafeProcesses
, ProcessTitle(..)
, fromProcessTitle
, ProcessDetails(..)
, fromProcessDetails
, Timeout(TimeoutMicros, fromTimeoutMicros)
, StrictDynamic()
, toStrictDynamic
, fromStrictDynamic
, unwrapStrictDynamic
, Serializer(..)
, ProcessId(..)
, fromProcessId
, yieldProcess
, delay
, sendMessage
, sendAnyMessage
, makeReference
, receiveMessage
, receiveSelectedMessage
, flushMessages
, receiveAnyMessage
, receiveLoop
, receiveSelectedLoop
, receiveAnyLoop
, MessageSelector(runMessageSelector)
, selectMessage
, filterMessage
, selectMessageWith
, selectDynamicMessage
, selectAnyMessage
, self
, isProcessAlive
, getProcessState
, updateProcessDetails
, spawn
, spawn_
, spawnLink
, spawnRaw
, spawnRaw_
, ResumeProcess(..)
, executeAndResume
, executeAndResumeOrExit
, executeAndResumeOrThrow
, interrupt
, sendInterrupt
, exitBecause
, exitNormally
, exitWithError
, sendShutdown
, linkProcess
, unlinkProcess
, monitor
, demonitor
, ProcessDown(..)
, selectProcessDown
, selectProcessDownByProcessId
, becauseProcessIsDown
, MonitorReference(..)
, withMonitor
, receiveWithMonitor
, Interrupt(..)
, Interrupts
, interruptToExit
, ExitRecovery(..)
, RecoverableInterrupt
, ExitSeverity(..)
, SomeExitReason(SomeExitReason)
, toExitRecovery
, isRecoverable
, toExitSeverity
, isProcessDownInterrupt
, isCrash
, toCrashReason
, fromSomeExitReason
, logProcessExit
, provideInterruptsShutdown
, handleInterrupts
, tryUninterrupted
, exitOnInterrupt
, logInterrupts
, provideInterrupts
, mergeEitherInterruptAndExitReason
, sendToReceiver
, Receiver(..)
, receiverPid
)
import Control.Eff.Concurrent.Process.Timer
( TimerReference()
, TimerElapsed(fromTimerElapsed)
, sendAfter
, startTimer
, sendAfterWithTitle
, startTimerWithTitle
, selectTimerElapsed
, cancelTimer
, receiveAfter
, receiveSelectedAfter
, receiveSelectedWithMonitorAfter
, receiveAfterWithTitle
, receiveSelectedAfterWithTitle
, receiveSelectedWithMonitorAfterWithTitle
)
import Control.Eff.Concurrent.Protocol
( HasPdu(..)
, Embeds
, Pdu(..)
, Synchronicity(..)
, ProtocolReply
, Tangible
, TangiblePdu
, Endpoint(..)
, fromEndpoint
, proxyAsEndpoint
, asEndpoint
, HasPduPrism(..)
, toEmbeddedEndpoint
, fromEmbeddedEndpoint
)
import Control.Eff.Concurrent.Protocol.Client
( cast
, call
, callWithTimeout
, castSingleton
, castEndpointReader
, callSingleton
, callEndpointReader
, HasEndpointReader
, runEndpointReader
, askEndpoint
, EndpointReader
)
import Control.Eff.Concurrent.Protocol.Observer
( Observer(..)
, ObservationSink
, IsObservable
, CanObserve
, Pdu(RegisterObserver, ForgetObserver, Observed)
, registerObserver
, forgetObserver
, forgetObserverUnsafe
, ObserverRegistry(..)
, ObserverRegistryState
, evalObserverRegistryState
, emptyObserverRegistry
, observerRegistryHandlePdu
, observerRegistryRemoveProcess
, observerRegistryNotify
)
import Control.Eff.Concurrent.Protocol.Wrapper
( Request(..)
, sendReply
, ReplyTarget(..)
, replyTarget
, embeddedReplyTarget
, replyTargetOrigin
, replyTargetSerializer
, toEmbeddedReplyTarget
, RequestOrigin(..)
, embedRequestOrigin
, toEmbeddedOrigin
, Reply(..)
, embedReplySerializer
, makeRequestOrigin
)
import Control.Eff.Concurrent.Process.ForkIOScheduler
( schedule
, defaultMain
, defaultMainWithLogWriter
, SafeEffects
, Effects
, BaseEffects
, HasBaseEffects
)
import Control.Eff.Log
import Control.Eff.LogWriter.Async
import Control.Eff.LogWriter.Console
import Control.Eff.LogWriter.DebugTrace
import Control.Eff.LogWriter.File
import Control.Eff.LogWriter.Rich
import Control.Eff.LogWriter.UDP
import Control.Eff.LogWriter.UnixSocket
import Control.Eff.Loop