polysemy-conc-0.15.0.0: Polysemy effects for concurrency
Safe HaskellNone
LanguageGHC2021

Polysemy.Conc.Effect.Mask

Description

 
Synopsis

Documentation

data RestoreMask (a :: Type -> Type) b where Source #

Part of an effect abstracting mask.

Constructors

Restore :: forall (a :: Type -> Type) b. a b -> RestoreMask a b 

restore :: forall (r :: EffectRow) a. Member RestoreMask r => Sem r a -> Sem r a Source #

Restore the previous masking state. Can only be called inside of an action passed to mask or uninterruptibleMask.

newtype Restoration Source #

Resource type for the scoped Mask effect, wrapping the restore callback passed in by mask.

Constructors

Restoration 

Fields

data MaskMode Source #

Whether mask or uninterruptibleMask was requested.

Instances

Instances details
Show MaskMode Source # 
Instance details

Defined in Polysemy.Conc.Effect.Mask

Eq MaskMode Source # 
Instance details

Defined in Polysemy.Conc.Effect.Mask

type Mask = Scoped MaskMode RestoreMask Source #

The scoped masking effect, parameterized by MaskMode.

type UninterruptibleMask = Mask Source #

Deprecated: Use Mask instead, which now handles both variants via MaskMode

Deprecated synonym for Mask.

mask :: forall (r :: EffectRow). Member Mask r => InterpreterFor RestoreMask r Source #

Mark a region as masked. Uses the Scoped pattern with Interruptible.

uninterruptibleMask :: forall (r :: EffectRow). Member Mask r => InterpreterFor RestoreMask r Source #

Mark a region as uninterruptibly masked. Uses the Scoped pattern with Uninterruptible.