module Access.Control.Concurrent.QSemN ( module Control.Concurrent.QSemN , QSemNAccess(..) ) where import Control.Concurrent.QSemN import Access.Core class Access io => QSemNAccess io where -- |Build a new 'QSemN' with a supplied initial quantity. -- The initial quantity must be at least 0. newQSemN' :: Int -> io QSemN -- |Wait for the specified quantity to become available waitQSemN' :: QSemN -> Int -> io () -- |Signal that a given quantity is now available from the 'QSemN'. signalQSemN' :: QSemN -> Int -> io () instance QSemNAccess IO where newQSemN' = newQSemN waitQSemN' = waitQSemN signalQSemN' = signalQSemN