data-concurrent-queue 0.1.1.0 → 0.3.0.0
raw patch · 2 files changed
+4/−34 lines, 2 files
Files
- Data/Concurrent/Queue.hs +3/−33
- data-concurrent-queue.cabal +1/−1
Data/Concurrent/Queue.hs view
@@ -1,14 +1,14 @@ {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances #-}-module Data.Concurrent.Queue (TakeQueue(..), PutQueue(..), Take, Put, TakePut, DMVar, newDMVar, newEmptyDMVar) where+module Data.Concurrent.Queue (TakeQueue(..), PutQueue(..)) where import Control.Concurrent import Control.Concurrent.STM import Control.Applicative -class TakeQueue q m | q -> m where+class TakeQueue q m where take :: q a -> m a -class PutQueue q m | q -> m where+class PutQueue q m where put :: q a -> a -> m () instance TakeQueue MVar IO where@@ -31,33 +31,3 @@ take = readTChan instance PutQueue TChan STM where put = writeTChan--newtype Take = Take Take-newtype Put = Put Put-newtype TakePut = TakePut TakePut--newtype DMVar d a = DMVar (MVar a)--newDMVar :: a -> IO (DMVar d a)-newDMVar a = DMVar <$> newMVar a--newEmptyDMVar :: IO (DMVar d a)-newEmptyDMVar = DMVar <$> newEmptyMVar--takeDMVar :: DMVar d a -> IO a-takeDMVar (DMVar x) = takeMVar x--putDMVar :: DMVar d a -> a -> IO ()-putDMVar (DMVar x) a = putMVar x a---instance TakeQueue (DMVar TakePut) IO where- take = takeDMVar-instance PutQueue (DMVar TakePut) IO where- put = putDMVar--instance TakeQueue (DMVar Take) IO where- take = takeDMVar--instance PutQueue (DMVar Put) IO where- put = putDMVar
data-concurrent-queue.cabal view
@@ -2,7 +2,7 @@ -- further documentation, see http://haskell.org/cabal/users-guide/ name: data-concurrent-queue-version: 0.1.1.0+version: 0.3.0.0 synopsis: A Library for directional queues -- description: license: MIT