module Control.Concurrent.Util where

import Control.Applicative ((<*>))
import Control.Exception (bracket_)
import Control.Concurrent.QSem (QSem, signalQSem, waitQSem)

withQSem :: QSem -> IO () -> IO ()
withQSem = bracket_ . waitQSem <*> signalQSem