Skip to content
Snippets Groups Projects
Commit 5ea70d4e authored by Herbert Valerio Riedel's avatar Herbert Valerio Riedel :man_dancing:
Browse files

Add more `@since` annotations

parent b2adee4b
No related branches found
No related tags found
No related merge requests found
......@@ -135,6 +135,8 @@ readTChan (TChan read _write) = do
-- | A version of 'readTChan' which does not retry. Instead it
-- returns @Nothing@ if no value is available.
--
-- @since 2.3
tryReadTChan :: TChan a -> STM (Maybe a)
tryReadTChan (TChan read _write) = do
listhead <- readTVar read
......@@ -147,6 +149,8 @@ tryReadTChan (TChan read _write) = do
-- | Get the next value from the @TChan@ without removing it,
-- retrying if the channel is empty.
--
-- @since 2.3
peekTChan :: TChan a -> STM a
peekTChan (TChan read _write) = do
listhead <- readTVar read
......@@ -157,6 +161,8 @@ peekTChan (TChan read _write) = do
-- | A version of 'peekTChan' which does not retry. Instead it
-- returns @Nothing@ if no value is available.
--
-- @since 2.3
tryPeekTChan :: TChan a -> STM (Maybe a)
tryPeekTChan (TChan read _write) = do
listhead <- readTVar read
......
......@@ -135,6 +135,8 @@ readTMVar (TMVar t) = do
-- | A version of 'readTMVar' which does not retry. Instead it
-- returns @Nothing@ if no value is available.
--
-- @since 2.3
tryReadTMVar :: TMVar a -> STM (Maybe a)
tryReadTMVar (TMVar t) = readTVar t
......
......@@ -46,6 +46,8 @@ import Control.Sequential.STM
-- Like 'modifyIORef' but for 'TVar'.
-- | Mutate the contents of a 'TVar'. /N.B./, this version is
-- non-strict.
--
-- @since 2.3
modifyTVar :: TVar a -> (a -> a) -> STM ()
modifyTVar var f = do
x <- readTVar var
......@@ -54,6 +56,8 @@ modifyTVar var f = do
-- | Strict version of 'modifyTVar'.
--
-- @since 2.3
modifyTVar' :: TVar a -> (a -> a) -> STM ()
modifyTVar' var f = do
x <- readTVar var
......@@ -63,6 +67,8 @@ modifyTVar' var f = do
-- Like 'swapTMVar' but for 'TVar'.
-- | Swap the contents of a 'TVar' for a new value.
--
-- @since 2.3
swapTVar :: TVar a -> a -> STM a
swapTVar var new = do
old <- readTVar var
......
......@@ -124,6 +124,7 @@ data STMret a = STMret (State# RealWorld) a
liftSTM :: STM a -> State# RealWorld -> STMret a
liftSTM (STM m) = \s -> case m s of (# s', r #) -> STMret s' r
-- | @since 2.3
instance MonadFix STM where
mfix k = STM $ \s ->
let ans = liftSTM (k r) s
......
......@@ -51,6 +51,7 @@ atomically (STM m) = do
rollback <- readIORef r
rollback
-- | @since 2.2.0
throwSTM :: Exception e => e -> STM a
throwSTM = STM . const . throwIO
......@@ -83,6 +84,7 @@ newTVarIO a = do
readTVar :: TVar a -> STM a
readTVar (TVar ref) = STM (const (readIORef ref))
-- | @since 2.1.2
readTVarIO :: TVar a -> IO a
readTVarIO (TVar ref) = readIORef ref
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment