abstract-deque-0.3: Abstract, parameterized interface to mutable Deques.

Safe HaskellSafe
LanguageHaskell98

Data.Concurrent.Deque.Reference

Description

A strawman implementation of concurrent Dequeues. This implementation is so simple that it also makes a good reference implementation for debugging.

The queue representation is simply an IORef containing a Data.Sequence.

Also see Data.Concurrent.Deque.Reference.DequeInstance. By convention a module of this name is also provided.

Synopsis

Documentation

data SimpleDeque elt #

Stores a size bound (if any) as well as a mutable Seq.

Constructors

DQ !Int !(IORef (Seq elt)) 
Instances
BoundedR SimpleDeque # 
Instance details

Defined in Data.Concurrent.Deque.Reference

Methods

tryPushR :: SimpleDeque elt -> elt -> IO Bool #

BoundedL SimpleDeque # 
Instance details

Defined in Data.Concurrent.Deque.Reference

Methods

newBoundedQ :: Int -> IO (SimpleDeque elt) #

tryPushL :: SimpleDeque elt -> elt -> IO Bool #

PushR SimpleDeque # 
Instance details

Defined in Data.Concurrent.Deque.Reference

Methods

pushR :: SimpleDeque elt -> elt -> IO () #

PopL SimpleDeque # 
Instance details

Defined in Data.Concurrent.Deque.Reference

Methods

tryPopL :: SimpleDeque elt -> IO (Maybe elt) #

DequeClass SimpleDeque # 
Instance details

Defined in Data.Concurrent.Deque.Reference

Methods

newQ :: IO (SimpleDeque elt) #

nullQ :: SimpleDeque elt -> IO Bool #

pushL :: SimpleDeque elt -> elt -> IO () #

tryPopR :: SimpleDeque elt -> IO (Maybe elt) #

leftThreadSafe :: SimpleDeque elt -> Bool #

rightThreadSafe :: SimpleDeque elt -> Bool #

newQ :: IO (SimpleDeque elt) #

pushL :: SimpleDeque t -> t -> IO () #

pushR :: SimpleDeque t -> t -> IO () #