|  | 
| | Control.Concurrent.AdvSTM.TMVar | | Portability | non-portable (requires STM) |  | Stability | experimental |  | Maintainer | Peter Robinson <[email protected]> | 
 | 
 | 
|  | 
|  | 
|  | 
| Description | 
| TMVar: Transactional MVars, for use in the AdvAdvSTM monad
 Corresponds to Control.Concurrent.STM.TMVar 
 | 
|  | 
| Synopsis | 
|  | 
|  | 
|  | 
|  | 
| TVars | 
|  | 
|  | 
| | A TMVar is a synchronising variable, used
for communication between concurrent threads.  It can be thought of
as a box, which may be empty or full. | 
 | 
|  | 
|  | 
| Create a TMVar which contains the supplied value. | 
|  | 
|  | 
| Create a TMVar which is initially empty. | 
|  | 
|  | 
| IO version of newTMVar.  This is useful for creating top-level
 TMVars using System.IO.Unsafe.unsafePerformIO, because using
 atomically inside System.IO.Unsafe.unsafePerformIO isn't
 possible. | 
|  | 
|  | 
| IO version of newEmptyTMVar.  This is useful for creating top-level
 TMVars using System.IO.Unsafe.unsafePerformIO, because using
 atomically inside System.IO.Unsafe.unsafePerformIO isn't
 possible. | 
|  | 
|  | 
| Return the contents of the TMVar.  If the TMVar is currently
 empty, the transaction will retry.  After a takeTMVar, 
 the TMVar is left empty. | 
|  | 
|  | 
| Put a value into a TMVar.  If the TMVar is currently full,
 putTMVar will retry. | 
|  | 
|  | 
| This is a combination of takeTMVar and putTMVar; ie. it takes the value
  from the TMVar, puts it back, and also returns it. | 
|  | 
|  | 
| Swap the contents of a TMVar for a new value. | 
|  | 
|  | 
| A version of takeTMVar that does not retry.  The tryTakeTMVar
 function returns Nothing if the TMVar was empty, or Just a if
 the TMVar was full with contents a.  After tryTakeTMVar, the
 TMVar is left empty. | 
|  | 
|  | 
| A version of putTMVar that does not retry.  The tryPutTMVar
 function attempts to put the value a into the TMVar, returning
 True if it was successful, or False otherwise. | 
|  | 
|  | 
| Check whether a given TMVar is empty.
 Notice that the boolean value returned  is just a snapshot of
 the state of the TMVar. By the time you get to react on its result,
 the TMVar may have been filled (or emptied) - so be extremely
 careful when using this operation.   Use tryTakeTMVar instead if possible.
 | 
|  | 
| Produced by Haddock version 2.4.2 |