module Control.Eff.Concurrent
(
module Control.Eff.Concurrent.Process
,
module Control.Eff.Concurrent.Process.Timer
,
module Control.Eff.Concurrent.Api
,
module Control.Eff.Concurrent.Api.Client
,
module Control.Eff.Concurrent.Api.Server
,
module Control.Eff.Concurrent.Api.Server
,
module Control.Eff.Concurrent.Api.Request
,
module Control.Eff.Concurrent.Api.Observer
,
module Control.Eff.Concurrent.Api.Observer.Queue
,
module Control.Eff.Concurrent.Process.ForkIOScheduler
,
module Control.Eff.Concurrent.Process.SingleThreadedScheduler
,
module Control.Eff.Log
,
module Control.Eff.Loop
)
where
import Control.Eff.Concurrent.Process ( Process(..)
, ProcessId(..)
, fromProcessId
, ConsProcess
, ResumeProcess(..)
, SchedulerProxy(..)
, thisSchedulerProxy
, ProcessState(..)
, yieldProcess
, sendMessage
, sendAnyMessage
, sendShutdown
, sendInterrupt
, makeReference
, receiveAnyMessage
, receiveMessage
, receiveSelectedMessage
, flushMessages
, receiveAnyLoop
, receiveLoop
, receiveSelectedLoop
, MessageSelector
( runMessageSelector
)
, selectMessage
, selectMessageLazy
, selectMessageProxy
, selectMessageProxyLazy
, filterMessage
, filterMessageLazy
, selectMessageWith
, selectMessageWithLazy
, selectDynamicMessage
, selectDynamicMessageLazy
, selectAnyMessageLazy
, self
, isProcessAlive
, spawn
, spawn_
, spawnLink
, spawnRaw
, spawnRaw_
, exitBecause
, exitNormally
, exitWithError
, linkProcess
, unlinkProcess
, monitor
, demonitor
, ProcessDown(..)
, selectProcessDown
, becauseProcessIsDown
, MonitorReference(..)
, withMonitor
, receiveWithMonitor
, provideInterruptsShutdown
, handleInterrupts
, tryUninterrupted
, exitOnInterrupt
, logInterrupts
, provideInterrupts
, mergeEitherInterruptAndExitReason
, interrupt
, executeAndResume
, executeAndResumeOrExit
, executeAndResumeOrThrow
, ExitReason(..)
, ExitRecovery(..)
, InterruptReason
, Interrupts
, InterruptableProcess
, ExitSeverity(..)
, SomeExitReason(SomeExitReason)
, toExitRecovery
, isRecoverable
, toExitSeverity
, isBecauseDown
, isCrash
, toCrashReason
, fromSomeExitReason
, logProcessExit
)
import Control.Eff.Concurrent.Process.Timer
( Timeout(fromTimeoutMicros)
, TimerReference()
, TimerElapsed(fromTimerElapsed)
, sendAfter
, startTimer
, selectTimerElapsed
, receiveAfter
, receiveSelectedAfter
)
import Control.Eff.Concurrent.Api ( Api
, Synchronicity(..)
, Server(..)
, fromServer
, proxyAsServer
, asServer
)
import Control.Eff.Concurrent.Api.Client
( cast
, call
, castRegistered
, callRegistered
, ServesApi
, registerServer
, whereIsServer
, ServerReader
)
import Control.Eff.Concurrent.Api.Request
( Request(..)
, Reply(..)
, mkRequestOrigin
, RequestOrigin(..)
, sendReply
)
import Control.Eff.Concurrent.Api.Server
( spawnApiServer
, spawnLinkApiServer
, spawnApiServerStateful
, spawnApiServerEffectful
, spawnLinkApiServerEffectful
, CallbackResult(..)
, MessageCallback(..)
, handleCasts
, handleCalls
, handleCastsAndCalls
, handleCallsDeferred
, handleMessages
, handleSelectedMessages
, handleAnyMessages
, handleProcessDowns
, dropUnhandledMessages
, exitOnUnhandled
, logUnhandledMessages
, (^:)
, fallbackHandler
, ToServerPids(..)
, InterruptCallback(..)
, stopServerOnInterrupt
)
import Control.Eff.Concurrent.Api.Observer
( Observer(..)
, registerObserver
, forgetObserver
, handleObservations
, toObserver
, toObserverFor
, ObserverRegistry
, ObserverState
, handleObserverRegistration
, manageObservers
, observed
)
import Control.Eff.Concurrent.Api.Observer.Queue
( ObservationQueue()
, ObservationQueueReader
, readObservationQueue
, tryReadObservationQueue
, flushObservationQueue
, spawnLinkObserverationQueue
)
import Control.Eff.Concurrent.Process.ForkIOScheduler
( schedule
, defaultMain
, defaultMainWithLogChannel
, ProcEff
, InterruptableProcEff
, SchedulerIO
, HasSchedulerIO
, forkIoScheduler
)
import Control.Eff.Concurrent.Process.SingleThreadedScheduler
( schedulePure
, defaultMainSingleThreaded
, singleThreadedIoScheduler
)
import Control.Eff.Log
import Control.Eff.Loop