Documentation in Control.Monad.STM.TMVar - isEmptyTMVar

Heinrich Apfelmus apfelmus at
Wed Oct 5 17:38:46 CEST 2011


As of  stm-, the documentation for the  isEmptyTMVar  function 
[1] reads

   isEmptyTMVar :: TMVar a -> STM BoolSource

   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.

This being software transactional memory, where everything is wrapped 
into a call to the  atomically  function, I believe that the second 
paragraph is now completely obsolete, to the point of being misleading 
(it sure scared me). I would be relieved if someone could remove it. 
Most likely, it was originally copied directly from the corresponding 
documentation of  Control.Concurrent.MVar .


Best regards,
Heinrich Apfelmus


More information about the Libraries mailing list