Blame Control/Concurrent/QSemN/Lifted.hs

Packit 1d883e
{-# OPTIONS_GHC -fno-warn-deprecations #-}
Packit 1d883e
{-# LANGUAGE CPP #-}
Packit 1d883e
{-# LANGUAGE NoImplicitPrelude #-}
Packit 1d883e
{-# LANGUAGE FlexibleContexts #-}
Packit 1d883e
Packit 1d883e
#if __GLASGOW_HASKELL__ >= 702
Packit 1d883e
{-# LANGUAGE Safe #-}
Packit 1d883e
#endif
Packit 1d883e
Packit 1d883e
{- |
Packit 1d883e
Module      :  Control.Concurrent.QSemN.Lifted
Packit 1d883e
Copyright   :  Liyang HU, Bas van Dijk
Packit 1d883e
License     :  BSD-style
Packit 1d883e
Packit 1d883e
Maintainer  :  Bas van Dijk <v.dijk.bas@gmail.com>
Packit 1d883e
Stability   :  experimental
Packit 1d883e
Packit 1d883e
This is a wrapped version of "Control.Concurrent.QSemN" with types
Packit 1d883e
generalised from 'IO' to all monads in 'MonadBase'.
Packit 1d883e
-}
Packit 1d883e
Packit 1d883e
module Control.Concurrent.QSemN.Lifted
Packit 1d883e
    ( QSemN
Packit 1d883e
    , newQSemN
Packit 1d883e
    , waitQSemN
Packit 1d883e
    , signalQSemN
Packit 1d883e
    ) where
Packit 1d883e
Packit 1d883e
--------------------------------------------------------------------------------
Packit 1d883e
-- Imports
Packit 1d883e
--------------------------------------------------------------------------------
Packit 1d883e
Packit 1d883e
-- from base:
Packit 1d883e
import Control.Concurrent.QSemN ( QSemN )
Packit 1d883e
import qualified Control.Concurrent.QSemN as QSemN
Packit 1d883e
import Data.Int ( Int )
Packit 1d883e
import System.IO ( IO )
Packit 1d883e
import Prelude ( (.) )
Packit 1d883e
Packit 1d883e
-- from transformers-base:
Packit 1d883e
import Control.Monad.Base ( MonadBase, liftBase )
Packit 1d883e
Packit 1d883e
#include "inlinable.h"
Packit 1d883e
Packit 1d883e
--------------------------------------------------------------------------------
Packit 1d883e
-- * QSemNs
Packit 1d883e
--------------------------------------------------------------------------------
Packit 1d883e
Packit 1d883e
-- | Generalized version of 'QSemN.newQSemN'.
Packit 1d883e
newQSemN :: MonadBase IO m => Int -> m QSemN
Packit 1d883e
newQSemN = liftBase . QSemN.newQSemN
Packit 1d883e
{-# INLINABLE newQSemN #-}
Packit 1d883e
Packit 1d883e
-- | Generalized version of 'QSemN.waitQSemN'.
Packit 1d883e
waitQSemN :: MonadBase IO m => QSemN -> Int -> m ()
Packit 1d883e
waitQSemN sem = liftBase . QSemN.waitQSemN sem
Packit 1d883e
{-# INLINABLE waitQSemN #-}
Packit 1d883e
Packit 1d883e
-- | Generalized version of 'QSemN.signalQSemN'.
Packit 1d883e
signalQSemN :: MonadBase IO m => QSemN -> Int -> m ()
Packit 1d883e
signalQSemN sem = liftBase . QSemN.signalQSemN sem
Packit 1d883e
{-# INLINABLE signalQSemN #-}