Safe Haskell | Safe-Infered |
---|
- data ExpiringMVar a
- newExpiringMVar :: a -> Int -> IO (ExpiringMVar a)
- readExpiringMVar :: ExpiringMVar a -> IO (Maybe a)
- resetExpiringMVarTimer :: ExpiringMVar a -> IO (ExpiringMVar a)
- isExpiredMVar :: ExpiringMVar a -> IO Bool
- cancelExpiration :: ExpiringMVar a -> IO ()
- changeExpiration :: Int -> ExpiringMVar a -> IO (ExpiringMVar a)
- removeExpiredMVars :: (Monoid (f (ExpiringMVar a)), Alternative f, Traversable t) => t (ExpiringMVar a) -> IO (f (ExpiringMVar a))
Documentation
data ExpiringMVar a Source
An ExpiringMVar contains a value that will be thrown out after a given period of time. The timer can be reset before the value expires.
:: a | The value which will expire. |
-> Int | The number of microseconds after which the value will expire. Note that the caveats which apply to Control.Concurrent.threadDelay apply to the expiration, also. |
-> IO (ExpiringMVar a) |
Create a new value that is set to be thrown away after a minimum period of time. Each call to newExpiringMVar spawns a thread that runs until the value expires.
readExpiringMVar :: ExpiringMVar a -> IO (Maybe a)Source
If the value has not yet expired, you are able to retrieve it. Reading the value does not expire it. In other words, readExpiringMVar behaves like readMVar.
resetExpiringMVarTimer :: ExpiringMVar a -> IO (ExpiringMVar a)Source
If the value has not yet expired, reset the timer. If the value expired, no timer is created.
isExpiredMVar :: ExpiringMVar a -> IO BoolSource
Determine whether an MVar has expired.
cancelExpiration :: ExpiringMVar a -> IO ()Source
If you decide that a value should never expire, you can cancel the timer.
:: Int | The new number of milliseconds to set the expiration timer to. |
-> ExpiringMVar a | |
-> IO (ExpiringMVar a) |
If the value hasn't yet expired, change the timer and reset it.
removeExpiredMVars :: (Monoid (f (ExpiringMVar a)), Alternative f, Traversable t) => t (ExpiringMVar a) -> IO (f (ExpiringMVar a))Source
For a collection of ExpiringMVars, filter out the ones that have expired, and put the remaining ExpiringMVars in a new collection.