HaskellWorks.Polysemy.Control.Concurrent.QSem
data QSem #
QSem is a quantity semaphore in which the resource is acquired and released in units of one. It provides guaranteed FIFO ordering for satisfying blocked waitQSem calls.
QSem
waitQSem
The pattern
bracket_ waitQSem signalQSem (...)
is safe; it never loses a unit of the resource.
newQSem :: Member (Embed IO) r => Int -> Sem r QSem Source #
waitQSem :: Member (Embed IO) r => QSem -> Sem r () Source #
signalQSem :: Member (Embed IO) r => QSem -> Sem r () Source #
bracketQSem :: Member (Embed IO) r => Member Resource r => QSem -> Sem r a -> Sem r a Source #