polysemy-conc-0.5.0.0: Polysemy Effects for Concurrency
Safe HaskellNone
LanguageHaskell2010

Polysemy.Conc.Effect.Monitor

Description

 
Synopsis

Documentation

data Restart Source #

Marker type for the restarting action for Monitor.

Constructors

Restart 

Instances

Instances details
Eq Restart Source # 
Instance details

Defined in Polysemy.Conc.Effect.Monitor

Methods

(==) :: Restart -> Restart -> Bool #

(/=) :: Restart -> Restart -> Bool #

Show Restart Source # 
Instance details

Defined in Polysemy.Conc.Effect.Monitor

data Monitor (action :: Type) :: Effect where Source #

Mark a region as being subject to intervention by a monitoring program. This can mean that a thread is repeatedly checking a condition and cancelling this region when it is unmet. A use case could be checking whether a remote service is available, or whether the system was suspended and resumed. This should be used in a Scoped context, like withMonitor.

Constructors

Monitor :: m a -> Monitor action m a 

Instances

Instances details
type DefiningModule Monitor Source # 
Instance details

Defined in Polysemy.Conc.Effect.Monitor

type DefiningModule Monitor = "Polysemy.Conc.Effect.Monitor"

monitor :: forall action r a. Member (Monitor action) r => Sem r a -> Sem r a Source #

Mark a region as being subject to intervention by a monitoring program.

newtype MonitorResource a Source #

Marker type for a Scoped Monitor.

Constructors

MonitorResource 

Fields

type ScopedMonitor (resource :: Type) (action :: Type) = Scoped (MonitorResource resource) (Monitor action) Source #

Convenience alias for a Scoped Monitor.

type RestartingMonitor (resource :: Type) = ScopedMonitor resource Restart Source #

Monitor specialized to the Restart action.

data MonitorCheck r Source #

Resources for a Scoped Monitor.

Constructors

MonitorCheck 

Fields

withMonitor :: forall resource action r. Member (ScopedMonitor resource action) r => InterpreterFor (Monitor action) r Source #

Start a region that can contain monitor-intervention regions.

restart :: forall resource r. Member (ScopedMonitor resource Restart) r => InterpreterFor (Monitor Restart) r Source #

Variant of withMonitor that uses the Restart strategy.