| Safe Haskell | Safe-Infered |
|---|
System.Posix.IO.Select.STM
Documentation
selectOrTakeTMVar :: [Fd] -> [Fd] -> [Fd] -> Timeout -> TMVar a -> IO (Either CInt a)Source
The parameters are the same as for select, except for the
addition of a TMVar. The function returns as soon as either the
select(2) has completed, or the TMVar is full.
The return value is either the return value of select(2), or the
content of the TMVar. If the TMVar becomes available first,
then the select(2) call may hang around forever or until it times
out (as specified by the Timeout parameter). If the select(2)
returns before the TMVar is available, the TMVar is guaranteed
to be left in place.
(Incidentally, selectOrTakeTMVar is the task I really wanted to
accomplish, and solving it just turned into this little library).