equeue-0: Application level triggered, and edge triggered event multiqueues.

Safe HaskellSafe
LanguageHaskell2010

Control.Concurrent.EQueue.Simple

Description

Simple compatability newtype wrappers to standard queues used in the Haskell wild.

Synopsis

Documentation

data JustOneEventually Source #

A policy for waiting until a single event can be gotten and returning just one. Since these standard queing options are fairly simple the don't allows more detailed policies abiding by EQueue's laws.

Constructors

JustOneEventually 

newtype ChanEQueue a Source #

A wrapper for EQueueing events into a Chan.

Constructors

CEQ (Chan a) 
Instances
EQueueW ChanEQueue Source # 
Instance details

Defined in Control.Concurrent.EQueue.Simple

Associated Types

type WaitPolicy ChanEQueue :: Type Source #

Methods

waitEQ :: MonadIO m => ChanEQueue a -> WaitPolicy ChanEQueue -> m [a] Source #

EQueue ChanEQueue Source #

Can not unregister events

Instance details

Defined in Control.Concurrent.EQueue.Simple

Methods

registerSemi :: (MonadIO m, Semigroup b) => ChanEQueue a -> (b -> a) -> m (b -> IO (), IO ()) Source #

registerQueued :: MonadIO m => ChanEQueue a -> m (a -> IO (), IO ()) Source #

type WaitPolicy ChanEQueue Source # 
Instance details

Defined in Control.Concurrent.EQueue.Simple

newtype TChanEQueue a Source #

A wrapper for EQueueing events into a TChan.

Constructors

TCEQ (TChan a) 
Instances
EQueueW TChanEQueue Source # 
Instance details

Defined in Control.Concurrent.EQueue.Simple

Associated Types

type WaitPolicy TChanEQueue :: Type Source #

Methods

waitEQ :: MonadIO m => TChanEQueue a -> WaitPolicy TChanEQueue -> m [a] Source #

EQueue TChanEQueue Source #

Can not unregister events

Instance details

Defined in Control.Concurrent.EQueue.Simple

Methods

registerSemi :: (MonadIO m, Semigroup b) => TChanEQueue a -> (b -> a) -> m (b -> IO (), IO ()) Source #

registerQueued :: MonadIO m => TChanEQueue a -> m (a -> IO (), IO ()) Source #

type WaitPolicy TChanEQueue Source # 
Instance details

Defined in Control.Concurrent.EQueue.Simple

newtype TQueueEQueue a Source #

A wrapper for EQueueing events into a TQueue.

Constructors

TQEQ (TQueue a) 
Instances
EQueueW TQueueEQueue Source # 
Instance details

Defined in Control.Concurrent.EQueue.Simple

Associated Types

type WaitPolicy TQueueEQueue :: Type Source #

EQueue TQueueEQueue Source #

Can not unregister events

Instance details

Defined in Control.Concurrent.EQueue.Simple

Methods

registerSemi :: (MonadIO m, Semigroup b) => TQueueEQueue a -> (b -> a) -> m (b -> IO (), IO ()) Source #

registerQueued :: MonadIO m => TQueueEQueue a -> m (a -> IO (), IO ()) Source #

type WaitPolicy TQueueEQueue Source # 
Instance details

Defined in Control.Concurrent.EQueue.Simple

newtype IOEQueue a Source #

A wrapper for EQueueing events that we have an IO action to submit.

Constructors

IOEQ (a -> IO ()) 
Instances
EQueue IOEQueue Source # 
Instance details

Defined in Control.Concurrent.EQueue.Simple

Methods

registerSemi :: (MonadIO m, Semigroup b) => IOEQueue a -> (b -> a) -> m (b -> IO (), IO ()) Source #

registerQueued :: MonadIO m => IOEQueue a -> m (a -> IO (), IO ()) Source #