Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
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
- data SimpleDeque elt = DQ !Int !(IORef (Seq elt))
- newQ :: IO (SimpleDeque elt)
- nullQ :: SimpleDeque elt -> IO Bool
- newBoundedQ :: Int -> IO (SimpleDeque elt)
- pushL :: SimpleDeque t -> t -> IO ()
- pushR :: SimpleDeque t -> t -> IO ()
- tryPopR :: SimpleDeque a -> IO (Maybe a)
- tryPopL :: SimpleDeque a -> IO (Maybe a)
- tryPushL :: SimpleDeque a -> a -> IO Bool
- tryPushR :: SimpleDeque a -> a -> IO Bool
- _is_using_CAS :: Bool
Documentation
data SimpleDeque elt Source #
Stores a size bound (if any) as well as a mutable Seq.
Instances
BoundedL SimpleDeque Source # | |
Defined in Data.Concurrent.Deque.Reference Methods newBoundedQ :: Int -> IO (SimpleDeque elt) Source # | |
BoundedR SimpleDeque Source # | |
Defined in Data.Concurrent.Deque.Reference | |
DequeClass SimpleDeque Source # | |
Defined in Data.Concurrent.Deque.Reference Methods newQ :: IO (SimpleDeque elt) Source # nullQ :: SimpleDeque elt -> IO Bool Source # pushL :: SimpleDeque elt -> elt -> IO () Source # tryPopR :: SimpleDeque elt -> IO (Maybe elt) Source # leftThreadSafe :: SimpleDeque elt -> Bool Source # rightThreadSafe :: SimpleDeque elt -> Bool Source # | |
PopL SimpleDeque Source # | |
Defined in Data.Concurrent.Deque.Reference | |
PushR SimpleDeque Source # | |
Defined in Data.Concurrent.Deque.Reference Methods pushR :: SimpleDeque elt -> elt -> IO () Source # |
newQ :: IO (SimpleDeque elt) Source #
newBoundedQ :: Int -> IO (SimpleDeque elt) Source #
pushL :: SimpleDeque t -> t -> IO () Source #
pushR :: SimpleDeque t -> t -> IO () Source #
_is_using_CAS :: Bool Source #